使用 Doom Nvim 配置 Neovim
除了搗鼓 Doom Emacs 外,我也在同步翻修我的 Vim 配置。其實我最一開始接觸 FOSS 時是個 Vim 用戶,也玩 vim-wiki 等各路工具。大約一年半後因為學習 Lisp 的原因轉戰 Emacs,不過我倒是一直記得 Vim 的基礎快捷鍵,也有一套基於 Vundle 的設置。不過此物及我的配置皆年久失修矣。
Kickstart.nvim
最近在看一些介紹終端機駭客的影片時,提到了 kickstart.nvim 這套工具,開箱即用,令人心動。安裝方式很簡單 - 把 init.lua 複製到 Neovim 預設的配置資料夾 .config/nvim 中即可。稍微閱讀了一下其內容,初始化會安裝幾類工具 - 跟我那時候認識的工具簡直完全不同呀(YouCompleteMe 變成 COQ/CMP、fzf 變成 telescope)!
- Package management:
wbthomason/packer.nvim - LSP management:
williamboman/mason.nvim - Auto-complete function:
hrsh67th/nvim-cmp - Highlight and navigation:
nvim-treeitter/nvim-treesitter - Git related plugins:
tpope/fugitive - Themes and status line
- Fuzzy finder:
nvim-telescope/telescope.nvim
接著是安裝(未安裝情況下)和各種 Vim 配置。最後兩大段則分別是設定 treesitter 和 LSP(基於 mason.nvim)。整體來說還蠻簡單的。
Doom Nvim
後來為了跟 Doom Emacs 有更接近的操作,改用了 doom-nvim 這個套裝。大部分常用的快捷鍵是通用的。啟動速度也很快(一樣採用了 lazy loading 策略)。目前踩到的第一個坑是需要 nerd-font;其他就且戰且走看看現代化編輯器又有什麼新玩法。預設套件部分與 kickstart.nvim 差異無幾。
Doom Nvim 希望使用者切換至自己的 branch 修改官方提供的 modules.lua 及 config.lua:
git checkout tags/$(git tag -l --sort -version:refname | head -n 1) -b my-config
之後使用 :DoomCheckUpdates 更新 Doom Nvim 本體、用 :PackerSync 更新各路套件。這個作法跟 Doom Emacs 不太一樣。
使用 Mason 安裝 LSP
目前主流的 LSP 管理工具 Mason 帶有一系列安裝腳本,可以代替用戶自動安裝各個語言的 LSP。我試了下,用它安裝 r_language_server 和 pyright 都十分簡單:
:LspInstall r_language_server
:LSpInstall pyright
Mason 需要系統安裝 luarocks 這個工具來幫助使用。如果需要額外的第三方工具,安裝 LSP 過程中則會報錯並彈出提示。除了通過命令安裝,也能開啟 Mason :Mason 移動游標並按下 i 進行安裝。這個 LSP 是全系統的,所以理論上其他支援 LSP 的編輯器也能讀到。算是一個很不錯的管理終端。