Neovim 系列(七):程式碼智能——LSP 與自動補全
這是 Neovim 從零開始系列的第七篇。整個系列共 12 篇文章,將帶你從完全不懂 Vim,到能用 Neovim 打造一個完整的現代化開發環境。 什麼是 LSP? LSP(Language Server Protocol) 是微軟在 2016 年為 VSCode 設計的通訊協定,後來成為了業界標準。它的概念很簡單: Language Server:一個獨立的程式,負責分析特定語言的程式碼 Editor:透過 LSP 協定和 Language Server 溝通 ┌─────────────┐ LSP ┌──────────────────┐ │ Neovim │◄────────────►│ Language Server │ │ (Editor) │ │ (如 typescript- │ │ │ │ language-server) │ └─────────────┘ └──────────────────┘ 這樣的好處是:每個編輯器只需要實作一次 LSP client,就能支援所有語言。VSCode 的程式碼智能就是基於 LSP,而 Neovim 從 0.5 開始就內建了 LSP client。 LSP 提供的功能 功能 說明 VSCode 對應 自動補全 輸入時顯示建議 IntelliSense 跳轉到定義 查看函數/變數的定義 Go to Definition 查看引用 找到所有使用某個符號的位置 Find All References Hover 文件 游標停留時顯示型別和文件 Hover 診斷 即時顯示錯誤和警告 Problems 重新命名 全域重新命名符號 Rename Symbol 程式碼動作 快速修復、自動導入 Quick Fix 格式化 自動排版程式碼 Format Document 我們要安裝的 Plugins 要讓 LSP 和自動補全在 Neovim 中運作,需要幾個 plugin 協同工作: ...