nvim相比我目前使用的spacemacs,感觉好轻量,headless 配合neovide, 高级感立马上来了。 真希望emacs也可以如此,为此我认真的体验了接近3周使用nvim进行开发, 甚至我的nas的系统镜像 移除了vi, 引入了nvim+fzf+rg+yazi+tmux等
我大都是远程编辑的,因此远程主机开上nvim headless, 然后windows主机远程连接上去, 最长使用时长大约一周都没关过nvim,期间也没有用过spacemacs.算是深度体验。
格式化的坑
我使用的是lazyvim,代码文件保存的时候,默认会格式化,这样每次提交,变动可能会比较大, 初始我大致扫描了一眼,感觉没太大问题,直到后来我觉得系统不太正常了,发现自动格式化之后, 程序执行与想要的不一样了。最简单的,在js文件中,比如下面的方式:
const cmd=`node script/test.js --op=test --test=1`;
格式化完之后,可能变成了如下:
const cmd=`node script / test.js --op = test--test = 1`;
命令组合失败。因此,最好关闭这个,我知道自己写的代码是什么样子的。
文件管理不方便
我很喜欢spacemacs的文件管理(包括打开),默认是当前文件目录,快速切换到目录,分栏等等, nvim默认在cwd等root目录,新建文件,默认的就在这个目录下,导致我经常找不到。另外,虽然使用了 类似fzf, rg等快速查找的外部工具,但架不住我文件数量多啊,再高的效率在错误的目录中也白搭。 而侧边栏(space e), 选择文件不方便,我也很少使用侧边栏。更不用提远程文件了。AI建议我使用sshfs 了。yazi虽然实现了类似tramp的方式,但远程目录还是不太方便。
org模式vs markdown
我太喜欢org模式了,blog的几乎所有文件都是org模式写的,相同类型放在同一个文件中,因此,只用 维护几个org文件就行了。写blog, 发blog, 全在org-mode.为了在nvim中更好的写记录,我只能使用 markdown了,甚至将blog由wordpress导出到hugo,然后发现每篇文章要写一个markdown,要维护几千个 md文件,还要想着文件名,天,放弃吧。我还是使用emacs+org-mode,虽然emacs很烂,wordpress很烂, 但没有替代方案。
输入法
对我这种经常在中文/英文之间切换的,nvim可以使用本地输入法真的太方便了,对于emacs而言,反而 要依赖x11+emacs体系的输入法(我用的是rime),实在无法比较。emacs慢,rime慢,x11慢, 动不动还经常剪切板之类的无法使用,对于emacs真的无力吐槽了。我甚至向ai询问,重写emacs的显示 框架调整为nvim的模式,难度几何,工作量如何。
git管理
虽然我使用mgit很顺手的,但也仅仅因为我基本都是简单使用,不涉及很复杂的比如多分支,多worktree 频繁的切换等等。但lazygit确实不错(除了我还是难以习惯,经常乱按键),这一点上,nvim集成的 其实还不错。