本文所有 Vim 均为 NeoVim 。为什么要使用 Vim ,我的回答是「颜值与操作」,或者 Google 这个问题。
原因#
之前定制的不夠好用。正好 Takuya 🐾 devaslife 又更新了 Vim Setup 的視頻,細數已經第四期了,平均每年一期。正好我也需要改,那就跟著一起做一些修改。
結合自身情況淺談 Vim 使用#
在定制好 Vim 且使用了很長時間,並沒有感到 Vim 能帶來非常明顯的效率提升。或許是因為我這段時間內幾乎沒有使用 VS Code,無法對比,所以模糊了這個概念。
我切換到 Vim 的原因大概以下幾個:
- 半透明的毛玻璃效果。我能很輕鬆的通過 iTerm 2 實現背景半透明的毛玻璃效果。
- 純鍵盤操作。我可以通過鍵盤來代替大部分鼠標操作,我只是很討厭鍵盤與鼠標之間的來回。
- 低內存佔用。下面是一個 Vim 與 VS Code 啟動相同最小可行項目,打開相同文件的內存佔用不完全對比。
iTerm 2 + Vim + Node(LSP)#
下面的 node 進程不太確定是否全部是 Vim LSP 帶起來的,姑且全部算上
截圖前做的一些操作:
- 打開關閉文件搜索 ( nvim-tree
- 打開文件搜索並確認打開文件 ( telescope nvim
- 打開 Git ( toggleterm + lazygit
- 輸入一些內容觸發 LSP 以及代碼提示 ( lspconfig + nvim-cmp
VS Code#
截圖前做的一些操作:
- 打開內置終端
- 輸入一些內容觸發代碼提示
肉眼可見,vim 佔用的資源還是少了很多的。
結語#
每當設置完 Vim 後打開一個項目看看效果是很有成就感的 (就像客制化鍵盤拼成後打幾分鐘字,聽聽鍵盤敲擊音那樣的成就感),但已經不想再大費周章來搞 Vim 了。
要是能重來,我要選 LunarVim 之類的已經集成好的編輯器,省心又省力。
更新#
由於種種原因,我已經使用 LunarVim 重來了。理由其實無非都是那幾個:懶,不太想再折騰這個東西。雖然 LunarVim 做了很多處理,但仍然比較習慣先前的定制,我仍然進行了不少遷移和覆蓋,好在比較面向社區化,隨便提了幾個對我有用的 PR 都合了,不過隱藏的風險也是比較面向社區。
過程依舊不是一帆風順,文檔的不完善與落後,導致在一些情況下我需要看代碼才能知道如何覆蓋原有的配置。LunarVim 的 stable 版本為了穩定,將插件的 commit 鎖上了,但碰巧撞上 Volar (vue-language-server) 的大版本更新,導致 Vue 項目無法啟動 LSP server 導致無法獲得語言支持。解決的辦法是將這些 commit 刪除即可,但我依舊選擇一種困難的方式寫了一個 hack 配置來自動刪除這些 commit ,因為我認為這種事情可能還會發生。
鏈接#
- craftzdog/dotfiles-public: My personal dotfiles (github.com)
- 敲代碼的脫髮水的個人空間_哔哩哔哩_bilibili
- 2nthony/dotfiles: My personal dotfiles (github.com)
- LunarVim/LunarVim: An IDE layer for Neovim with sane defaults. Completely free and community driven. (github.com)
- LazyVim/LazyVim: Neovim config for the lazy (github.com)