如何在vimdiff中禁止“ 2个文件要编辑”消息?


11

'vimdiff ab'总是打印“ 2个文件进行编辑”。我不想看到那个。如何避免呢?

这是一个例子:

⚡ vimdiff  a b                                                                                                                               
2 files to edit

我想从bash脚本中使用vimdiff,但不想看到此输出


1
您当然可以使用来启动它2>/dev/null。为什么需要这个?似乎有点烦人。哦,完全不相关,您可以分享您的$ PS1吗?您用作提示的字符是什么?
terdon

1
vimdiff ab 2> / dev / null对我不起作用。
埃里克·约翰逊

我只是在其中粘贴Unicode字符。我的$ PS1在这里定义:github.com/kablamo/dotfiles/blob/master/links/.bash/prompt.sh
Eric Johnson

很好,谢谢:)。没错,重定向STDERR似乎无效。我以为可以,但是我没看到线。
terdon

答案似乎在这里。确保阅读评论。
13年

Answers:


3

查看vim源代码,看起来只有在以ex和使用其-s选项启动可执行文件时,或者没有控制台时,才能抑制该消息。

两种方法都不适用。

但是,仅在命令行上指定多个文件的情况下才输出该消息。

因此,让我们欺骗它:

vim a -c "vert diffsplit b"

基本上说:“ 用vim 编辑文件a,并加载a之后,打开文件b的垂直分割并对其进行比较”。


嘿,行得通!很好,谢谢!现在我记得我想要这个的地方了。好消息是我认为它仍然对我有用。
埃里克·约翰逊

如果第二个文件的路径或文件名中有空格,则此解决方案将不起作用。我通过使用-d标志调用vim并将输出发送到/ dev / null来解决该问题(像这样,引号将正确地使用空格传递参数。):vim -d“ $ a”“ $ b”> / dev / null
DevDaddyNick

@DevDaddyNick不会完全为您隐藏vim吗?它zsh以我的外壳为oh-my-zsh基础,对我有用。
codelahoma

是的,我后来发现我的解决方案仅在您不在终端中使用Vim时才有效。我使用的是Macvim,但是当我下次将SSH插入另一台计算机时尝试使用该解决方案时,它完全抑制了Vim。
DevDaddyNick

对于想在代码中进行深入研究的其他人,截至今日的代码中的相关行位于main.c
xdhmoore


-1

根据SO 上的这篇文章,在vimrc中设置它应该可以解决问题:

set shortmess=filnxtToO

3
抱歉,即使我使用--noplugin,这对我也不起作用。我仍然得到一个味精。我不是在说编辑器中的味精。关闭编辑器后,有一个味精,这就是我想要摆脱的。不过谢谢
埃里克·约翰逊
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.