我想知道是否有办法直接在 vim 中查看任何命令的输出,而不是先将其重定向到文件中然后打开该文件。
例如,我需要类似 $ gvim <diff -r dir1/ dir2/
这给出了模棱两可的重定向错误消息
我只想直接在 gvim 中查看 dir1 和 dir2 之间的差异。
任何人都可以提供一个不错的技巧吗?
diff file1 file2 | vim -R -
这-R
使它成为只读的,因此您不会意外修改输入(这可能是您想要的行为,也可能不是您想要的行为)。单个破折号告诉vim
通过标准输入读取其输入。也适用于其他命令。
此外,当已经在 Vim 中时:
:r! diff file1 file2
vim -d file1 file2
尽管我也建议vimdiff
或vim -d
查看差异的情况,但我只需要分享这种(更通用的)在管道中使用 vim 的方法:vipe(来自moreutils
Ubuntu 中的包)。
例如:
查找 -name '*.png' | 毒蛇 | xargs rm
将允许您首先编辑(在 vim 中)找到的 .png 文件列表,然后再将其传递给xargs rm
.
jst 使用 gvimdiff
或 vimdiff
将命令的输出直接粘贴到 vim 中,例如 ls,尝试
:%r!ls
顺便说一句,有一个DirDiff 插件。
你可以这样做
diff -r dir1/ dir2/ | gvim -
vim(或 gvim)的 ' -
' 选项告诉 vim 打开 STDIN
我经常用vimdiff -g <file1> <file2>
最简单方便的方法之一是这样做:
vimdiff -R <file1> <file2>
'-R' 标志再次将其打开为只读模式以避免任何意外更改。