2012-11-10 22 views
9

我在Ubuntu 12.04中的gnome-terminal中使用了vim,並且在MacOS的終端中使用了vim。我使用ack.vim插件來執行項目範圍的文本搜索,但它工作正常,但有一個令人不舒服和分散注意力的bug:在呈現搜索結果之前,終端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

任何人有任何想法如何解決這個問題?

回答

6

這是vim自己的:grep*命令如何工作的問題,而不是ack.vim問題。您不能阻止使用該終端,但將shellpipe設置爲>,&>2>/dev/null>將防止命令將輸出複製到終端(默認情況下,該選項爲2>&1|tee&>2>&1>值與最近的值完全相同)。

+0

將shellpipe設置爲&>工作。看看https://github.com/mileszs/ack.vim/issues/18,看看我如何將這個修補程序集成到ack.vim中。感謝Zyx –

+3

@RafaelVega它應該設置在你的vimrc中。 **不要建議將其設置在插件中。** AFAIR這對於linux上的'csh'是錯誤的,在Windows上'cmd.exe'肯定是錯誤的。 – ZyX

0

建議的解決方案能夠工作,但現在vim-screen在按ctrl-z之後出現在輸出中。

相關問題