zzxworld

Neovim 安装体验小记

Neovim 安装体验小记

最近我电脑上的 Vim 出了点问题,只要使用 NERD tree 浏览文件,并调用其文件修改菜单后,界面原本显示 NERD tree 菜单的地方就会出现一篇空白,不会自动关闭,必须要缩放一下编辑窗口才能消失。反复尝试了一些方法无法解决,我决定趁机试试 Neovim。

Neovim 是什么

Vim 经过多年的沉淀,历史包袱越来越重,已经跟不上编程领域的发展。Neovim 的作者想要尝试对其进行大刀阔斧的修改,不过他的提议被抱着守旧思想,得过且过的 Vim 维护者给拒绝了。所以 Neovim 诞生了。

相比 Vim,Neovim 提供了很多满足现代化程序开发的特性和功能。更干净和易于维护的代码;使用 Lua 作为扩展开发语言;支持异步的 API 等等。这些特性和功能让淘汰 Vim 有了可能。不过 Vim 也没有坐以待毙。Neovim 的崛起,以及随之而带来的一些崭新的特性让 Vim 有了危机感。所以在 Vim 8 中添加了之前只有 Neovim 中才有的一些功能。比如异步 API。

所以 Neovim 可以看作是另一个更加「现代」化的 Vim。它跟老的 Vim 是竞争者关系,但对于使用者来说,这两者用谁都没有太大区别。

安装 Neovim

我使用的是 Arch Linux,通过以下命令安装 Neovim:

sudo pacman -S neovim

如果是 Debian/Ubuntu Linux,可以用 apt 命令安装:

sudo apt install neovim

配置 Neovim

安装好后,在终端界面上运行 nvim 即可启动 Neovim。我原本以为它会使用 .vimrc 文件,结果发现并没有。去看了一下官方文档,发现可以通过以下方式创建一个空的配置文件。

首先打开 Neovim,然后执行下面的指令创建配置目录:

:call mkdir(stdpath('config'),'p')

然后继续执行指令创建空配置文件:

:exe 'edit' stdpath('config').'/init.vim'

通过这个命令能发现,Neovim 的配置文件命名为 init.vim。我很好奇它的配置目录在哪里,这个用 :echo 指令可以做到。在 Neovim 中运行以下指令:

:echo stdpath('config')

在执行指令的位置会输出一个目录地址,我这里输出的是:/home/zzxworld/.config/nvim,这应该就是 Neovim 存放配置文件的目录了。

在运行上面的 :exe 指令后,Neovim 会处于打开 init.vim 这个配置文件的状态。可以按 i 键进入 INSERT 状态,直接开始输入配置内容,配置格式和 Vim 是类似的。比如显示行号:

set number

我直接把之前 .vimrc 文件中的内容复制过来就能用。编辑好配置内容后,运行 :w 指令完成保存操作。

后记

为了判断开头我碰到的问题,我弄了个极简的配置放到了 init.vim 中:

set number

filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'scrooloose/nerdtree'

call vundle#end()
filetype plugin indent on

map <c-o> :NERDTreeToggle<cr>

然后在 Neovim 中尝试调用了以下 NERD tree 的文件操作菜单,依然会出现空白区域问题,看来是错怪 Vim 了,还是要从 NERD tree 上找原因。既然和 Vim 无关,我对尝试 Neovim 也没了太大兴趣,就此作罢。