繁体   English   中英

重定向和vim

[英]redirection and vim

我想知道是否有一种方法可以直接在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

尽管在查看差异时我也建议使用vimdiffvim -d ,但我只需要共享这种在管道中使用vim用法的(更通用的)方法:vipe(来自Ubuntu中的moreutils包)。

例如:

查找-name'* .png'| vipe | 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'标志是将其打开为只读模式,以避免任何意外更改。

您在寻找什么叫做流程替代

vim <(diff -r dir1/ dir2/)

但是Luc提到的DirDiff插件对于比较目录更加有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM