再再次打造 Vim 编辑器

本文所有 Vim 均为 NeoVim 。为什么要使用 Vim ,我的回答是「颜值与操作」,或者 Google 这个问题。

之前定制的不够好用。正好 Takuya 🐾 devaslife 又更新了 Vim Setup 的视频,细数已经第四期了,平均每年一期。正好我也需要改,那就跟着一起做一些修改。

结合自身情况浅谈 Vim 使用

在定制好 Vim 且使用了很长时间,并没有感到 Vim 能带来非常明显的效率提升或许是因为我这段时间内几乎没有使用 VS Code,无法对比,所以模糊了这个概念。

我切换到 Vim 的原因大概以下几个:

  • 半透明的毛玻璃效果。我能很轻松的通过 iTerm 2 实现背景半透明的毛玻璃效果。

  • 纯键盘操作。我可以通过键盘来代替大部分鼠标操作,我只是很讨厌键盘与鼠标之间的来回。

  • 低内存占用。下面是一个 Vim 与 VS Code 启动相同项目,打开相同文件的内存占用不完全对比。内存占用量不用计算,一眼就能看出 Vim 使用相对较低。

iTerm 2 + Vim + Node(LSP)

下面的 node 进程不太确定是否全部是 Vim LSP 带起来的,姑且全部算上

截图前做的一些操作:

  • 打开关闭文件搜索 ( nvim-tree

  • 打开文件搜索并确认打开文件 ( telescope nvim

  • 打开 Git ( toggleterm + lazygit

  • 输入一些内容触发 LSP 以及代码提示 ( LSP + CMP + GitHub Copilot

VS Code

截图前做的一些操作:

  • 打开内置终端

  • 输入一些内容触发代码提示

肉眼可见,vim 占用的资源还是少了很多的。

每当设置完 Vim 后打开一个项目看看效果是很有成就感的(就像客制化键盘拼成后打几分钟字,听听键盘敲击音那样的成就感),但已经不想再大费周章来搞 Vim 了。

无比折腾, 插件的不兼容更新说来就来(如 barbar.nvim 把 lua 包名改了 require("bufferline.nvim") -> require("bufferline") ),这时候不得不去仓库找更新记录、查看源码或者看 help 查找配置变动。

要是能重来,我要选 LunarVim 之类的已经集成好的编辑器,省心又省力。

另外如果你也想使用 Vim ,我的建议是使用 LunarVim 而不是自己从 0 开始捣腾 Vim ,LunarVim 像 VS Code 一样,也是一个社区驱动的开源项目,有社区帮你处理插件的不兼容更新,帮你完善功能,自己不用折腾,功能又丰富,开箱即可体验 Vim 带来的“效率提升”,何乐不为呢?

更新

由于种种原因,我已经使用 LunarVim 重来了。理由其实无非都是那几个:懒,不太想再折腾这个东西。虽然社区做了很多处理,但仍然比较习惯先前的定制,我仍然进行了不少迁移和覆盖,好在比较面向社区化,随便提了几个对我有用的 PR 都合了,不过隐藏的风险也是比较面向社区

过程依旧不是一帆风顺,文档的不完善与落后,导致在一些情况下我需要看代码才能知道如何覆盖原有的配置。LunarVim 的 stable 版本为了稳定,将插件的 commit 锁上了,但碰巧撞上 Volar(vue-language-server) 的大版本更新,导致 Vue 项目无法启动 LSP server 导致无法获得语言支持。解决的办法是将这些 commit 删除即可,但我依旧选择一种困难的方式写了一个 hack 配置来自动删除这些 commit ,因为我认为这种事情可能还会发生。

Powered by blogkit. Inspired by Sairin.