我的代码编辑器 Neovim 之旅

引言

各位朋友们,今天想跟你们聊聊我最近这一年多的代码编辑器折腾史。要说从 VS Code 转投 Neovim 这件事,我觉得真的可以写一篇"真香警告"了。当然不是说 VS Code 不好,毕竟它也是陪我写了好几年代码的老伙伴。但自从入了 Neovim 这个坑,我是真的有点回不去了。

初识 Neovim:一个美丽的误会

说起来,我第一次知道 Neovim 还是在某个技术群里。当时有人发了张截图,满屏的代码和状态栏,看得我是一头雾水——这界面也太"原始"了吧?命令行里也能写代码?当时我心里想的都是:这都 2023 年了,谁还用这玩意儿啊?

结果你猜怎么着?没过多久,我自己就成了那个"谁"。

事情是这样的,有次重构一个后端项目,用 VS Code 打开一个文件夹,结果电脑卡得不行。那项目说大不大,说小也不小,Node_modules 密密麻麻,VS Code 疯狂 indexing,我等它等得花儿都谢了。那时候刚好看到一篇帖子讲 Neovim 启动速度有多快,于是抱着"死马当活马医"的心态装了一个。

好家伙,这一装,就彻底回不去了。

配置的乐趣:痛并快乐着

说实话,Neovim 最劝退新人的地方,绝对是它的配置。你说 VS Code 装个插件,点两下鼠标就完事儿了。Neovim 呢?你得写 Lua,得改 init.lua,得研究各个插件的配置。

一开始我是真的痛苦。网上找的各种配置方案复制粘贴,结果不是报错就是功能不对。经常是改一行配置,然后 Neovim 就打不开了——对,你没看错,改配置文件改到编辑器打不开,这事儿我遇到了不止一次。

但是!当你熬过最开始那段磨合期之后,你会发现自己打开了一个新世界。为啥?因为你的编辑器完完全全是你自己的形状。你可以决定哪些功能要,哪些不要,快捷键怎么设置,状态栏显示什么,一切都在你的掌控之中。

这是我的基础配置,看起来挺简洁的:

-- init.lua 部分配置

require("plugins")

require("keymaps")

require("options")

-- 选项设置

vim.opt.number = true

vim.opt.relativenumber = true

vim.opt.tabstop = 2

vim.opt.shiftwidth = 2

vim.opt.expandtab = true

vim.opt.termguicolors = true

这种掌控感,是用其他编辑器很难体会到的。

插件生态:相见恨晚

说到插件,Neovim 的插件生态真是让我大开眼界。你能想到的功能,几乎都有人帮你实现了。

我常用的几个插件必须得提一下:

- Telescope :模糊搜索文件、代码、命令,比 VS Code 的搜索好用太多

- LSP :语言服务器协议支持,代码补全、跳转、诊断一条龙

- Tree-sitter :语法高亮,那叫一个丝滑

- nvim-cmp :补全引擎,配合 LSP 使用效果拔群

还有像 FzfHarpoonGlow 等等,用过的都说好。

而且现在 Neovim 对 LSP 的支持已经非常成熟了。不像以前还得装各种语言的插件,现在只要装个 mason.nvim,一行命令就能自动下载和配置各种语言的 LSP 服务器。Python、TypeScript、Rust、C++,统统一键搞定。

效率提升:键盘就是我的魔法杖

用 Neovim 最大的改变,是我的鼠标使用频率直线下降。

以前用 VS Code 的时候,虽然也尽量用快捷键,但总归还是会时不时的摸一下鼠标。切换文件、调整布局、打开终端,鼠标点一点多方便啊。

现在?不好意思,我的手基本不离键盘。

: Telescope find_files 搜文件,Ctrl+o / Ctrl+i 跳转,ff 格式化代码,gg 启动lazygit……一套组合拳下来,效率比之前高了不少。

当然,学习成本是有的。光是熟悉各种快捷键,我就花了好几个星期。但一旦熟练之后,那种"指尖飞舞"的感觉真的太爽了。有朋友来我工位看我敲代码,都说像看黑客帝国。

日常使用:它已经成为我的第二个大脑

现在 Neovim 已经深度融入我的日常工作流了。

每天早上到公司,打开终端,输入 nvim,看着那熟悉的界面,心里就有一种踏实感。写代码的时候, LSP 实时提示代码问题,Tree-sitter 高亮语法, Telescope 帮我快速定位文件和字符串,空格键 + 各种命令搞定一切。

偶尔出去开会,用别人的电脑写代码,没有 Neovim 的日子浑身难受——这可能就是传说中的"由俭入奢易,由奢入俭难"吧。

总结

回顾这一年多的 Neovim 之旅,从最开始的"这什么鬼东西",到后来的"真香",再到现在的"爱不释手",真的是一段很有意思的经历。

它教会我的不只是怎么配置一个编辑器,更是让我理解了"工具"和"效率"的真正含义。一个真正顺手的工具,应该是你感觉不到它存在的——你只需要专注于你要做的事情,工具会自动帮你完成其他的。

当然,我不是说 Neovim 适合所有人。如果你只是想要一个"开箱即用"的编辑器,VS Code 依然是最好的选择。但如果你愿意花时间精力去折腾,去打造一个完全属于你自己的编辑器,我相信 Neovim 不会让你失望。

好了,今天就聊到这里。如果你们也有什么编辑器使用心得,欢迎在评论区交流啊!我们下期再见。