微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何pipeinput到sublimetext在Linux上?

如何从标准input接收文本到sublimetext编辑器? 用vim就可以这样工作:

echo "potato potato potato" | vim -

同样的事情与gedit一起工作,创build一个新的文件内容

Sublimetext似乎刚开始编辑一个名为“ – ”的文件一个新的选项卡中,是否有一些其他的shell技巧可以工作?

XOPEN_SOURCE和信号处理

打开一个标准的Jet数据库4.0文件(* .vmd)

C标准库中包含了什么?

Win32开发。 标准

如何优化std :: map insert()函数

Windows标准文件位置

我应该允许strerror_r的大小是多less?

输出redirect不适用于某个程序

LSB中是否有RPM文件命名约定?

如何成功使用RDAP协议而不是whois

如果您的崇高安装不支持打开STDIN(例如Linux上的当前版本),最简单的解决方案是将输出转储到临时文件,以sublime打开文件,然后删除文件。 我在我的bin目录中创建了一个名为tosubl的脚本,如下所示:

#!/bin/bash TMPDIR=${TMPDIR:-/tmp} # default to /tmp if TMPDIR isn't set F=$(mktemp $TMPDIR/tosubl-XXXXXXXX) cat >| $F # use >| instead of > if you set noclobber in bash subl $F sleep .3 # give subl a little time to open the file rm -f $F # file will be deleted as soon as subl closes it

那么你可以通过做这样的事情来使用它:

$ ifconfig | tosubl

我不知道崇高的文本,但你的问题应该是通用的,它适用于任何接受文件名作为参数的程序,但拒绝从标准输入读取。

幸运的是,Bash允许您将stdout从一个进程管理到某种临时文件,然后将该文件名称传递给另一个进程。

从man bash :

支持命名管道(FIFOs)的系统或命名打开文件的/ dev / fd方法支持进程替换。 它采用<(list)或>(list)的形式。 进程列表在其输入或输出连接到FIFO或/ dev / fd中的某个文件时运行。 作为扩展的结果,此文件名称作为参数传递给当前命令。 如果使用>(列表)表单,写入文件将为列表提供输入。 如果使用<(list)形式,则应读取作为参数传递的文件获取列表的输出

假设SomeProcess产生你想在你的编辑器中捕获的输出

sublimetext <(SomeProcess)

要么:

SomeProcess | sublimetext <(cat)

如果你认为你会手工输入这个内容,那么你可能需要将sublimetext <(cat)放入shell脚本或别名中。

以防万一你的操作系统不支持进程替换,那么你总是可以自己指定一个临时文件

SomeProcess > /tmp/myoutput sublimetext /tmp/myoutput

你可能会发现从moreutils vipe有用。 如果你已经设置了 EDITOR='subl --wait' ,你可以简单地:

echo 'potato potato potato' | vipe

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐