一直以来,我都感觉传统编辑器鼠标和键盘的频繁切换的体验让我无法接受,它让编程这件事情拆分成了两个系统:输入和移动。我一直有将他们统一的冲动,但又受限于 vim 学习成本过高的固有认知一直没有行动。它像一根若有若无的刺一直刺痛着我,直到有一天我接触到了 lazyvim,我想也许是时候改变了。

layvim.png

lazyvim 可以极大程度降低了配置难度,可以在不进行任何配置的情况下拥有一个轻量级的代码编辑器。

我切换 Neovim 除了 lazyvim 降低了配置成本还有另一个原因:我认为自己还会有相当长的时间开发相关的活动,一个高度可定制的编辑器,可以让我随心所欲的打造一个称手的工具。

关于配置我使用的是 https://github.com/craftzdog/dotfiles-public 并在此基础上扩充了 PHP 开发相关的配置。在文章底部我会贴出自己的 dotfile 仓库,目前我的配置可以用于 VUE、PHP、GO 的开发,如果需要可以自取。

在开发之前我们还是需要对 Neovim 基础操作有一定的了解,这里介绍一下我的学习方式。

我是通过 https://lazyvim-ambitious-devs.phillips.codes/ 一书建立的最初的基本只是,后续又看了一些视频加深我对 Neovim 的理解。

在视频学习的过程中,可以很好的学习资深的 vimer 是如何进行 vim 操作的,拿来主义可以省去很多自己探索的精力。最开始只需要模仿就可以了,等你对 vim 使用熟练后你会有自己的想法,那时自然而然的会形成自己独有的操作方式。

视频的学习我参考了 craftzdog 比较多,在 B 站上也学习了其他人的一些操作技巧。

Neovim 的学习成本也没有想象中那个高,正常下来,一周你就可以比较得心应手的进行开 发了。

得益于 LSP 的技术,让 Neovim 对开发语言的支持和 Vs code 并没什么本质的差别。 Vs code 对语言的支持也是通过 LSP 来实现的。

Neovim 带来了什么?它确实能使我整个开发的工作流完全脱离了鼠标,所有开发的工作包括但不限于代码编写、函数跳转、以及 git 的提交等全部都可以脱离鼠标完成,双手不需要离开键盘区域就可以完成编程所需要的操作。

此外像文件操作:打开、删除、重命名等操作,Neovim 也可以很方便的操作。它确实让我更专注了,所有的操作都没有任何的打断,我不需要频繁的把手离开键盘做一些额外的鼠标操作。

上文说到,Neovim 可定制化程度更更高,理论上你能按照你的习惯去配置 Neovim 来使它与你配合的更默契。

Neovim 会不会对开发效率带来一定的提升?从我目前的使用程度来看,它并不能带来明显的开发效率的提升,Neovim 在一些操作上的确更有优势,但是也有一些操作没有 GUI 更加的高效。总的看来我觉得它的开发效率和 Vs code 差不多。

哦,对了顺便在说一句,如果你有腱鞘炎的话,也许可以试试 Neovim,我看其他的 vimer 说这个能一定程度改善腱鞘炎。

Neovim 目前与 AI 结合也是很好的,它可以利用 Codeium 进行代码提示。

Codeium.png

此外,Neovim 也可以和 aider 结合,使其具备类似 cursor 的功能。有了 aider 相当于有个 AI 与你一起结对编程,开发的体验好上不少。无聊且枯燥的功能交给 aider 试试。

aider 对代码的感知不仅限于当前打开的文件,他会对整个项目的代码进行了解 ,也就是说只要需求描述的清除,aider 可以跨多个文件进行代码编写来实现复杂功能。

Neovim 这段时间的使用感受大概就是这样了,如果你对 Neovim 也有兴趣,不妨也试试,也许能给你不一样的体验。

Dotfile : https://github.com/yunxi177/dotfile