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

时间:2010-10-05 14:46:53

标签: linux editor pipe

我的程序会生成一些数据。它输出标准错误的所有内容。

现在我想将输出重定向到新启动的文本编辑器,进入启动时显示的主要未命名编辑窗口。我尝试使用vim和gedit但没有成功。

myprogram | gedit
myprogram | gvim

任何人都知道X11文本编辑器会支持这个吗?

5 个答案:

答案 0 :(得分:19)

如果您想将节目stderr重定向到gvim,可以执行以下操作:

myprogram 2>&1 | gvim -

如果您想将stdout重定向到编辑器,您可以执行以下操作:

myprogram| gvim -

答案 1 :(得分:8)

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

sudo lshw | gedit &

在Ubuntu 14.04上

sudo lshw | gedit - &
Dimitry K 2016年1月22日19:00 添加

我认为你仍然需要冲刺:

gedit sudo lshw | gedit - & 

(试过ubuntu 14.04,只有破折号才有效) -

答案 2 :(得分:5)

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

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

以下适用于vim之类的编辑器,但是gedit,geany或emacs似乎无法打开由<()

创建的标准输入或临时文件

vi <( echo hello )

echo hello | vi -

答案 3 :(得分:2)

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

F=$(mktemp)
myprogram >$F
gedit $F
rm $F

答案 4 :(得分:1)

history | kate -i

我最喜欢的编辑: - )

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

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