我在Ubuntu 12.04中的gnome-terminal和MacOS的终端中都使用了vim。我使用ack.vim插件来执行项目范围的文本搜索,它工作正常,但有一个令人不安和分散注意力的错误:
当您执行搜索时,整个vim屏幕将返回终端并在运行时显示ack的输出。当它停止运行时,屏幕返回到vim并正确显示搜索结果。此外,当您退出vim时,所有ack的输出都将在终端中。
我知道这个问题https://github.com/mileszs/ack.vim/issues/18但是我想在此发布,看看我是否可以获得有关如何修复它的想法。
在ack.vim中,我可以看到行silent execute a:cmd . " " . l:grepargs
,我认为这是实际运行ack命令的地方。沉默的选择已经存在,就我的vim-fu带我而言。 :S
任何人对如何解决此问题都有任何想法?
答案 0 :(得分:8)
这是vim自己的:grep*
命令如何工作的问题,而不是ack.vim
问题。您无法阻止使用终端,但将shellpipe
设置为>
,&>
或2>/dev/null>
会阻止命令将输出复制到终端(默认情况下,此选项为2>&1|tee
和&>
或2>&1>
值与当前最接近的值相近。)
答案 1 :(得分:0)
建议的解决方案有效,但现在按下ctrl-z后vim屏幕在输出中。