我想知道是否有办法查看任何命令的输出, 直接在vim内部,而不是首先将其重定向到文件中 然后打开那个文件。
E.x。我需要类似的东西
$ gvim< diff -r dir1/ dir2/
这会产生不明确的重定向错误消息
我只想直接看到dir1和dir2之间的差异 GVIM。
任何人都能提供一个不错的黑客吗?
答案 0 :(得分:41)
diff file1 file2 | vim -R -
-R
使其成为只读,因此您不会意外地修改输入(这可能是您希望的行为,也可能不是您想要的行为)。单个短划线告诉vim
通过标准输入读取其输入。也适用于其他命令。
答案 1 :(得分:10)
此外,当已经在Vim中时:
:r! diff file1 file2
答案 2 :(得分:6)
vim -d file1 file2
答案 3 :(得分:6)
虽然我也建议vimdiff
或vim -d
来查看差异,但我只需要分享这个(更一般的)方法来在管道中使用vim:vipe(来自Ubuntu中的moreutils
包。)
例如:
find -name'* .png'| vipe | xargs rm
允许您首先编辑(在vim中)找到的.png文件列表,然后再将其传递给xargs rm
。
答案 4 :(得分:4)
jst使用gvimdiff代替
或者vimdiff
将命令的输出直接粘贴到vim中,例如ls,试试
:%R LS
答案 5 :(得分:4)
答案 6 :(得分:2)
您可以使用
执行此操作diff -r dir1/ dir2/ | gvim -
vim(或gvim)的'-
'选项告诉vim打开STDIN
答案 7 :(得分:1)
我经常使用vimdiff -g <file1> <file2>
答案 8 :(得分:0)
最简单方便的方法之一是这样做:
vimdiff -R <file1> <file2>
再次&#39; -R&#39; flag是以只读模式打开它以避免任何意外更改。
答案 9 :(得分:0)