Vim 安裝 YouCompleteMe、Supertab 等等外掛,於 Vim 7.0 都正常,但是某些機器升級到 Vim 8.0 後,就出現下述錯誤:
- $ vim
處理 /home/user/.vim/bundle/supertab/plugin/supertab.vim 時發生錯誤:
行 1000:
E475: 不正確的參數: pumvisible() ? "\" : "\"
要如何修復呢?
Vim 遇到不正確的參數: pumvisible() ? "\" : "\" 修正
遇到這個問題,此篇有說明原因:
- 原因可見:E475: Invalid argument: pumvisible() ? "\" : "\" #185
- 解法:To be precise, make sure you load supertab before YouCompleteMe
主因是在於 YouCompleteMe 太早 Load 進去,但是我的 Vim 使用 pathogen 來管理,調整先後順序有點複雜,可見此篇:
- vim, pathogen, and load order of ftplugin files
Plain Vim loads the plugin scripts in alphabetical order. This is from :help load-plugins
這邊有說可以定義載入順序,應該可以把他排到後面去,參考此篇:pathogen.vim: manage your runtimepath
- execute pathogen#infect('bundle/{}', '~/src/vim/bundle/{}')
但是上述都有點複雜,我最後用這個方法搞定:
- mv ~/.vim/bundle/YouCompleteMe/ ~/.vim/bundle/youCompleteMe/
- 這樣子就比較後面才會 load 到了~ (pathogen 好像是依照字母順序載入的,所以換個名字來解決.)