2010-05-26 42 views
4

當我在一個大的C文件(約8000)行 完成ctrl-p和ctrl-n語法非常慢(超過20) 。當我關閉語法時,完成時間不到一秒鐘。啓用語法和語法摺疊在vim與大C文件,使完成緩慢

我想出了一種重現此行爲的最簡單方法。使用一個空文件夾。vim的和建立.vimrc只有這些行:

set syntax on 
set foldmethod=syntax 

當你打開一個大的C文件,完成(甚至一般編輯)變得很慢。

編輯:

此行爲是由於我使用的是測試版本。我不確定是否應該完全刪除這個問題,或者如果其他人有同樣的問題,可以留下一些線索。

+0

「這種行爲是由於我使用的是beta版本」我在Vim7.4的最終版本上遇到過同樣的問題。 – idbrii 2014-11-08 00:14:43

回答

2

我猜你的完成正在通過語法高亮文件進行調整。要看到,如果是這種情況,並完成精益和快速不管,嘗試

:set complete=. 

這將使得完成只使用當前文件。

閱讀更多有關完整的選項與

:help 'complete' 
+0

感謝我之前嘗試過的答覆,我發現問題出在foldmethod設置中,不確定是否可以做任何事情。 – skeept 2010-05-27 04:56:02

3

Vim的是有時慢(尤其是對於插件完成)在大文件由於foldmethod=syntax

來源:幫助TODO:

  • 摺疊和PHP語法突出顯示的緩慢組合。腳本到 重現它。由「語法同步從開始」與補丁 7.2.274相結合導致。 (Christian Brabandt,2010年5月27日)通常,將摺疊爲 的'foldmethod'設置爲「語法」很慢。做剖析找出原因。

FastFold plugin使得它如此褶皺僅在節省重新計算(所以你總是使用foldmethod=manual - 但褶皺與foldmethod=syntax計算或任何你以前設置)。

這解決了我的問題。現在,我可以在我的5000行C++文件中使用compl-whole-line完成功能,它可以即時快速地完成,而不需要花費幾分鐘時間並且無反應。