(Mac)當語法設定為Ruby時,Vim相當緩慢
我在MacVim 7.4(我使用命令列版本),通過Homebrew安裝.
當語法突出顯示Ruby程式碼時,Vim緩慢.當在vim中的Ruby檔案中移動時,htop顯示80%-100%的CPU使用率.
我在這裡發現了這些:
>ofollow,noindex" target="_blank">Vim slow with ruby syntax highlighting
>Syntax highlighting causes terrible lag in Vim
並嘗試了提出的解決方案.我做了什麼:
> set regexpengine = 1:沒有改變.仍然非常高的CPU使用率和緩慢的效能.
> set lazyredraw:事情更好,但權衡非常明顯(移動時游標消失)
>我檢查了我的.vimrc中的autocmd語句,發現沒有什麼特別慢.我嘗試刪除所有的外掛,但問題仍然存在.
我嘗試關閉語法,並且解決了這個問題.另外,使用vim -u NONE啟動vim,然後轉動語法來解決問題,所以它一定是我的.vimrc中的東西?
Here 的連結到我的vimrc.
編輯
我可能已經發現有罪的設定.似乎有兩個設定在vim中顯著減慢移動速度:
>設定相對數
>設定游標
請注意,這兩個設定都可以觸發此行為.
這些設定強制vim在滾動保持j或k時在螢幕上重畫相當多的東西.
我懷疑在這裡有一個解決方案,但我非常樂意加快速度.
編輯#2
請注意,relativenumber和cursorline僅在Ruby檔案中使用時觸發此行為.我試過的每一個其他檔案型別(相對於數字和游標)滾動順暢,無論多長時間.
正如avivr所說,由於foldmethod = syntax,Vim有時很慢(特別是對於ins-completion)在大檔案中
來自:help todo:
-
Slow combination of folding and PHP syntax highlighting.Script to
reproduce it.Caused by “syntax sync fromstart” in combination with patch
7.2.274.(Christian Brabandt, 2010 May 27) Generally, folding with
‘foldmethod’ set to “syntax” is slow.Do profiling to find out why.
FastFold plugin 使得摺疊僅在儲存時重新計算(所以您始終使用foldmethod =手動 – 但摺疊使用foldmethod =語法或之前設定的任何內容計算).
這解決了我的問題.現在我可以在我的5000行C檔案中使用完全整數的完成,而且它是瞬間的,而不是花費幾分鐘而無法響應.
http://stackoverflow.com/questions/22949067/macvim-quite-slow-when-syntax-is-set-to-ruby