重定向和vim

24 linux vim

我想知道是否有办法直接在vim中查看任何命令的输出,而不是先将其重定向到文件然后打开该文件.

我需要像$ gvim <这样的东西 diff -r dir1/ dir2/

这会产生不明确的重定向错误消息

我只想在gvim里面看到dir1和dir2之间的差异.

任何人都可以提供一个很好的黑客?

jva*_*sak 41

diff file1 file2 | vim -R -
Run Code Online (Sandbox Code Playgroud)

-R使得它只读的,因此你不小心修改输入(这可能是也可能不是你想要的行为).单个短划线告诉vim通过标准输入读取其输入.也适用于其他命令.


ski*_*inp 10

此外,当已经在Vim:

:r! diff file1 file2
Run Code Online (Sandbox Code Playgroud)


Pet*_*one 6

vim -d file1 file2


Wal*_*ter 6

虽然我也建议vimdiff或者vim -d考虑差异,我只需要分享这个(更一般的)方法来在管道中使用vim:vipe(来自moreutilsUbuntu中的包).

例如:

find -name'*.png'| vipe | xargs rm

允许你首先编辑(在vim中)传递之前找到的.png文件列表xargs rm.


Adi*_*rji 4

jst 使用 gvimdiff 代替
或 vimdiff
将命令的输出直接粘贴到 vim 中,例如 ls,尝试
:%r!ls