覆沉

給(Neo-)VIM裝配Language Server Protocol(配合deoplete)
by renyuneyun, post on 2021年05月23日(週日)

作爲一個長期(Neo-)VIM用戶,我對代碼補全等活計還是有很大需求的。之前在試用各種插件的時候就在想,爲什麼不搞個通用的,非要每個插件自己搞一套,然後還需要互相配套。最近兩年聽說微軟搞了個Language Server Protocol,而且還和RedHat等合作最終將其標準化並開放出來,我對此還是十分好奇的。

然而我之前剛切換到deoplete不久,配合any-jump還是挺好用的,於是就沒有動力去繼續切換——畢竟我看到許多個LSP插件,但每個的文檔都語焉不詳的,而且也考慮LSP可能會改,它們的完成度也需要時間來提升。而且貌似實現得最好的是CoC——嗯,NodeJS的,不想用。

直到到了昨天,我發現了一個大問題(見後文),導致我不得不去修改我的流程。於是我又去試了LSP支持插件,最終用了LanguageClient-neovim這一插件,和deoplete配合很好,而且遷移過程十分簡單。於是就有了此文,敘述一下我之前的方案問題在哪,以及切換的過程,以幫助潛在的類似需求者。

之前的方案和問題

我最早用的是YouCompleteMe,但因爲種種因素(慢,每次更新薛定諤地需要重新編譯且耗時很久 …

Read in 1 mins