neovim安装

概述

neovim-qt是nemvim的qt框架下的GUI前端,在neovim的众多GUI中,neovim-qt是功能比较成熟和完善的一个。

编译安装

  1. 下载源码
git clone git@github.com:equalsraf/neovim-qt.git
  1. 编译
cd neovim-qt
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
  1. 设置环境变量
vim ~/.profile
export NVIM_QT_RUNTIME_PATH="$HOME/neovim-qt/src/gui/runtime/"
export PATH="$PATH:$HOME/neovim-qt/build/bin"

为了能够通过命令行运行neovim,可以把nvim-qt所在的路径添加到path中,这里只是举例。
NVIM_QT_RUNTIME_PATH定义了neovim-qt的GUI命令解析插件的运行环境路径,如果不定义这个命令,则neovim-qt的GUI命令不能直接使用,只能使用rpcnotify函数操作,十分不便。

配置

有关neovim的配置可以参考vim,这里就不再赘述了。关于neovim-qt的配置,主要还是GUI相关的,有关帮助的详细信息可以参考帮助help nvim-gui-shim,或者网站里的介绍

值得注意的是,GUI选项必须在$HOME/.config/nvim/ginit.vim文件中进行配置。文件路径严格匹配。
在我现在的配置中,做了一个vim和neomvim配置文件的软链接,方便统一配置文件。

ln -svf $HOME/.vim $HOME/.config/nvim
ln -svf $HOME/.vimrc $HOME/.vim/init.vim

其他配置

连字设置

连字可以让传统编成语言上的多个字符组成的操作符显示为一个符号,或者让一些组合符号看着更紧凑。这里推荐Fira Code,这是由mozilla基金会领头的一个开源字体。
具体配置如下:

vim $HOME/.config/nvim/ginit.vim
" 定义字体
Guifont! Fira Code:h11
" 启用连字
GuiRenderLigatures 1

对于字体的设置,需要使用Guifont!,叹号不能省略,如果不加叹号有可能提示font xx is not fixed pitch,而忽略配置。
fira code是一个等宽字体,但是确实会有如此的提示,这种玄学问题不知道算不算是Bug。

完成配置后,重新打开neovim-qt即可。试试输入:

>=
=>
??

bug

在存在多个缓冲区的时候,鼠标点击文字后,切换缓冲区

这个bug也是在某次使用时发现的,下载最新的neovim-qt,重新编译解决了问题。

总结

neovim-qt是一个比较不错的GUI前端,现在我已经用neivim-qt作为我主要的编辑器使用了。与之对应的neovim-gtk,这里提到了就现在笔记的记录日期来对两个项目做下比较。
其实对于qt和gtk两个框架,我更喜欢gtk,这是在gnome时代就存在的天然亲和力。在实际使用过程中,neovim-gtk定义了一个环境变量g:GtkGuiLoaded,用以区分gtk GUI是否运行,这一点neovim-qt并没有相关的变量。不过在字体配置上,neovim-qt能够正确的识别汉字宽度,而neovim-gtk对非等宽的汉字宽度识别存在误差,句子长度约长光标的偏移越大,这也是现在使用neovim-qt的主要原因。

相关链接

项目首页
wiki
Fira Code
GUI配置帮助
连字issue
运行环境问题issue