2012-02-18 218 views
10

如果我打開一個包含5,000行代碼並繼續輸入的文件,我發現我的vim變得非常慢,它在大約1秒後顯示我的輸入。Vim反應很慢

--noplugin啓動後,它甚至不會變好。但切換我的.vimrc文件後,一切都變好了。 .vimrc文件是我自己寫的,經過一段時間的檢查後,我仍然找不到錯誤。我已經清楚所有的關鍵地圖,但問題仍然存在。

那麼你可以給我任何建議或告訴我如何在vim中進行調試嗎?我發現有一個調試選項,但不能如何工作。

+0

Janus被任何機會使用?如果是這樣,似乎是一個共同的問題。如果你不依賴於逃犯,請禁用它。 https://github.com/carlhuda/janus/issues/396 – three 2012-02-18 13:56:17

+0

謝謝三。我現在不知道vim的版本。但它似乎不是由vim引起的,但我寫的腳本有一些問題。 – 2012-02-18 13:59:54

+1

什麼是文件類型?那是XML嗎?你嘗試過':syn off'嗎? – Benoit 2012-02-18 14:01:55

回答

12

可以使用--startuptime選項啓動Vim的時候:

--startuptime {fname}     *--startuptime* 
     During startup write timing messages to the file {fname}. 
     This can be used to find out where time is spent while loading 
     your .vimrc, plugins and opening the first file. 
     When {fname} already exists new messages are appended. 
     (Only available when compiled with the |+startuptime| 
     feature). 

採取以下步驟來診斷問題:在bash

  • vim --startuptime log.txt main.java啓動VIM
  • :tabe log.txt在vim中查看日誌。
+2

嗨kav。我的vim在啓動時並不慢。 – 2012-02-19 00:06:37

+0

@ user674199我已經更新了答案。 – kev 2012-02-19 03:52:49

+0

oK,我會嘗試一下。謝謝你kev。 – 2012-02-19 04:11:04

7

像這樣的東西通常是由語法着色造成的。試用:syntax off

+0

它不應該在大小(~5000lines)的文件上出現任何問題,我的文件明顯更大並且仍然不減速。如果是500000行,可能... – Rook 2012-02-18 15:16:36

+0

這不是語法問題。我已更改爲其他的vimrc,並且語法已打開。它工作正常,感謝。 – 2012-02-19 00:03:41

+1

當我關閉語法時,問題解決了。但是當我更改vimrc文件時它也會加速。我在這兩個vimrc文件中提到了相同的語法。 – 2012-02-20 02:02:24

11

緩慢的原因往往是在vim(see also discussion on google vim/ruby google group)編譯時沒有設置或錯誤的設置ruby_path。將它設置在vimrc中會更容易,因爲您可以在不重新編譯vim的情況下對其進行更改。您可以在.vimrc文件中設置通過g:ruby_path變量的路徑。不要複製和粘貼兩個,使用正確的。

如果你有設置RBENV使用這一個:

" ruby path if you are using rbenv 
let g:ruby_path = system('echo $HOME/.rbenv/shims') 

如果你有設置RVM使用這一個:

" ruby path if you are using RVM 
let g:ruby_path = system('rvm current') 

您還可以使用vim-rbenv插件,它集路徑也是如此。

對我來說,在vim中加載ruby特定函數的部分要快10倍。

如果您使用的是jruby,則啓動速度可能會更慢。查看修復它的例子。

+0

事實上,通過這種方法強制實現紅寶石路徑可以大大提高vim的啓動速度。謝謝! – agarie 2013-06-19 00:51:39

5

如果運行VIM 7.4,

把這個在你的.vimrc

集regexpengine = 1

VIM 7.4有沒有出現在某些情況下很好地工作一個新的正則表達式引擎。以前的版本vim 7.3使用舊的引擎(設置regexpengine = 1)。

語法高亮問題的「響應緩慢」也會影響vim幫助文件(以及.vimrc文件)。

+0

非常感謝,這使竅門 – robert 2016-08-03 20:28:46

+0

':set regexpengine = 1' - 這是一個偉大的發現,*沒有其他專家*提到。在這個改變之後,我得到了一些改進(但沒有完成)。 我放慢速度的另一個原因是':設置relativenumber',導致大量屏幕重繪,從而有效地顯示放緩。 – 2016-12-04 08:06:39