waizui

转向Neovim

2024-4-27

契机

前段时间,DHH在他的博客上说他在“finding the last editor”, 在他后面的写代码的几十年一直使用,最后他决定试试neovim。

巧合的是在DHH写这篇博客之前我已经开始转向neovim。在我开始学习vim的时候,neovim项目刚刚起步没几年, 现在过去多年,各方面已经相当成熟。

在这之前,我一直在各种编辑器里面使用模拟vim的插件,包括但不限于rider,vscode。不可否认vscode这样的编辑器非常强大, 社区也很活跃,除非有自己的特殊偏好,不然在工业界写代码的话我觉得首选还是这种各方面完备的IDE比较好, 一个原因是同事几乎也都在用,可以互相配合,二个是开箱即用,很简单。

关于我的话,转向neovim其实是比较自然的事情。

第一个原因,我对在各种编辑器里使用模拟的vim已经感到厌烦。第二个是因为暂时会写比较多的学术而非工业代码, 换成自己喜欢的编辑器影响不大。

Neovim与Lua

我个人非常喜欢lua,我也很熟悉lua,我觉得neovim使用lua作为脚本语言真的很明智,不是python,也不是js。

lua最大的特点就是简单,我在配置完neovim的第二天就可以改动插件代码实现我自己的功能,neovim的社区也非常活跃, 文档也写得很详细。反观vim的vimscript很难用也很难学,直接把我劝退,至今我都没有改动过vim里的脚本实现自己的功能。 vim发布至今为止已经三十几年了,技术跟设计在今天看来有点过时,重构已经不太可行, neovim完全重写以后应该又能坚持个几十年吧。

除此之外,作为解释性语言里面速度一哥,lua的速度是真的快。在我的2015款macbook pro上面用neovim感觉不到卡顿, 用vscode的话明显感觉响应速度跟不上我敲键盘的速度。并且这还是在我的neovim已经装上了完整的从代码高亮到debugger的各种插件的情况下, 后面继续装插件也许速度会下降一些,但应该还是比vscode要快很多的,毕竟是terminal。

后记

在配置neovim的过程中我也踩了很多坑,特别是我想要一个多平台的配置(包括windows,macos以及linux)。 想要把neovim配置成一个IDE还是要花挺大的功夫的,并且可能会在几年的使用里面才能逐渐收敛到一个得心应手的状态, 后面会开个坑写一下教程。