在使用vim的時候,每當按下.[tab]的使候就會出現下面的錯誤訊息,接著vim就閃退了。
Vim: Caught deadly signal SEGV
Vim: preserving files...
Vim: Finished.
這個問題其實困擾我很久了,於是決定找個時間解決這個問題。尋問G大(keyword: vim autocomplete crash)之後,首先看到這篇Vim segfault upon some autocompletion in ruby files。有人提到這其實是rvm造成的問題,當啟動vim的時候,rvm會影響vim中plugin使用ruby的版本。一個簡單的測試方式就是在vim中輸入指令::ruby a=1
(這個指令只是簡單執行一小段ruby的程式碼a=1),如果vim同樣爆了,那就是ruby版本的問題了。
測試的解果看來的確是這個問題,於是又有了這篇github:carlhuda/janus - Using RVM,它提出了解決的方式,就是在執行vim的時候強制unset rvm相關的環境變數。不過這篇提到的兩種方法,我用了還是不行。
再次受挫之後,看到有人提及vim本身compile的時候ruby的版本也會影響,於是抱著死馬當活馬醫的心情,重新compile了vim,而且還指定使用system的ruby版本來compile。搞了半個小時的時間,終於讓我試出來了,下面是最後的步驟。
brew remove vim
rvm system do brew install vim
alias vim='rvm system do /usr/local/bin/vim $@'
因為實在是受不了mac上的vim在打開大檔案的時候,速度變的極度緩慢…最後還是投奔sublime的懷抱(當然是with vim plugin啦,呵呵)。