如何从标准input接收文本到sublimetext编辑器? 用vim就可以这样工作:
echo "potato potato potato" | vim -
同样的事情与gedit一起工作,创build一个新的文件的内容。
Sublimetext似乎刚开始编辑一个名为“ – ”的文件在一个新的选项卡中,是否有一些其他的shell技巧可以工作?
XOPEN_SOURCE和信号处理
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] 举报,一经查实,本站将立刻删除。