NeoVim初体验

2018年3月4日

NeoVim旨在成为Vim的升级版,有不少对它的介绍,我就不赘述了。

NeoVim官网强调了它的四大特点:Powerful plugins(强大的插件)、Better out-of-the-box(更好的开箱即用)、First-class embedding(高度支持嵌入模式)、Drop-in replacement for Vim(直接替换Vim)。

先不评论插件,因为如果本体不好用、有bug,就不用看插件了。

开箱即用不行。首先NeoVim的初始化脚本不是$HOME\_vimrc(或.vimrc)了,改为%AppData%\Local\nvim\init.vim(或~/.config/nvim/init.vim)。[1]对于Vim的老用户,不知道这一点是不能开箱即用的。但是这个问题不大,搜一下马上就知道了。

直接替换Vim不行。Vim有gVim,提供窗口化支持,但是NeoVim安装包里自带的NeoVim-qt对窗口化的支持极弱。NeoVim-qt的GUI窗口本质上是内嵌命令行窗口,所以没有右键菜单,窗口关闭按钮命令也是转化为:q命令发送给下层命令行,所以不能弹出是否保存文件的对话框,所以如果文件未保存,是无法关闭NeoVim窗口的,而且给出的提示极不明确。参见GitHub问题Cannot close window by clicking “X”。到了2023年,这个问题仍没有解决。它会提示save changes to Untitled,但无法真正保存。

NeoVim对系统剪贴板的支持有bug。有时可以获取系统剪贴板,有时不能。这大大削弱了便利性。参见GitHub问题Unable to paste to different programs in Windows 10

其次,NeoVim加载时容易假死。或许是它的容错性不高,相同的初始化脚本(.vimrc、_vimrc或init.vim),在gVim里可以正常工作,在NeoVim里就导致加载超时。比如如果NeoVim对一个文件夹没有操作权限,对那个文件夹执行操作就是导致超时和假死。

至于NeoVim的底层技术,相比于Vim可能是有优势的,我没仔细研究,但至少易用性上不及gVim。

参考资料

  1. neovim. FAQ. . [2018-03-04].