如何在编辑器中pipe道程序输出?

我有我的程序生成一些数据。 它输出标准错误的一切。

现在我想将输出redirect到一个新启动的文本编辑器,进入启动时显示的主未命名编辑窗口。 我尝试了vim和gedit没有成功。

myprogram | gedit myprogram | gvim 

任何人都知道一个X11文本编辑器,将支持这个?

如果你想把你的程序的stderr重定向到gvim你可以这样做:

 myprogram 2>&1 | gvim - 

如果你想将stdout重定向到编辑器,你可以这样做:

 myprogram| gvim - 

我在Ubuntu 12.04中尝试过,它可以按照需要运行:

 sudo lshw | gedit & 

在Ubuntu 14.04上

 sudo lshw | gedit - & 

要使用任何编辑器在一行中执行此操作,请创建一个临时文件,使用gedit打开它,然后在gedit打开时删除它:

echo hello > temp ; gedit temp ; sleep 1 && rm temp &

下面的例子和vim这样的编辑器一起工作,但gedit,geany或者emacs似乎无法打开由<()创建的标准输入或临时文件,

vi <( echo hello )

echo hello | vi -

我不知道任何支持这个的编辑器,但重定向到一个临时文件可能会更容易。

 F=$(mktemp) myprogram >$F gedit $F rm $F 
 history | kate -i 

我最喜欢的编辑器:-)

如前所述,当一个程序不支持这种管道时,最好的方法是在目录/ tmp /中使用临时文件,该目录通常在下次启动时被删除。

 history > /tmp/bflmpsvz;mcedit /tmp/bflmpsvz