Neovim
Neovim 是 Vim 的分支,旨在改进代码库,从而使得 API 更容易实现,并改善用户体验和插件实现。Neovim 启发了 Helix 等编辑器。
安装[编辑 | 编辑源代码]
安装 neovim包 或 neovim-gitAUR(开发版本)软件包,两者强烈建议使用 Lua 作为主要的配置语言。要使 Neovim 能够访问系统剪贴板,可能需要安装 xclip包(X11)或 wl-clipboard包(Wayland)。
:help provider-clipboard
Neovim 命令。也可以安装 GUI 和其他相关项目,它们中的大多数都在官方软件仓库或 AUR 中:
- neovim-qt包 — Fast, lightweight, and customizable Qt GUI. Provides a modern interface, including support for multiple tabs, split windows, and customizable themes.
- neovim-gtkAUR — GTK GUI. Provides a modern, customizable interface, including support for split windows, multiple tabs, and customizable themes.
- uivonim-gitAUR — (Inactive) Simple and lightweight GTK GUI. Provides a minimalistic interface, including support for split windows and customizable themes.
- uivonim-gitAUR || uivonim-gitAUR
- neovide包 — Rust GUI.
- neoray-gitAUR — Go GUI.
- gnvimAUR — GTK GUI.
- fvimAUR — F# GUI.
配置[编辑 | 编辑源代码]
Neovim 的用户配置位于 $XDG_CONFIG_HOME/nvim/init.vim
(默认是 ~/.config/nvim/init.vim
)。全局配置文件位于 $XDG_CONFIG_DIRS/nvim/sysinit.vim
(默认是 /etc/xdg/nvim/sysinit.vim
)。如果不存在,则会载入 /usr/share/nvim/sysinit.vim
,后者不建议由用户编辑。[1] 默认情况下,前一个全局配置文件并不存在。如果你创建了前一个文件,那你可能也想在其中 source 后一个文件(如果你想获得它提供的功能:允许 Neovim 使用通过 pacman 安装的 Vim 包)。
Neovim 兼容 Vim 大多数的选项,不过有一些选项特定于 Neovim。完整的 Neovim 选项列表参见 Neovim 的帮助文件。
Neovim 的数据目录位于 ~/.local/share/nvim/
,包含打开文件的交换文件、ShaDa(共享数据)文件和插件的站点目录。
从 Neovim 0.5 版本开始,可以使用 Lua 设置 Neovim(默认是 ~/.config/nvim/init.lua
),API 仍然很年轻,不过常见的配置开箱即用,无需过多配置。关于转换现有的配置的建议,参见 [2]。当前,与 init.vim
相比,使用 init.lua
没有太多的优势,不过在使用得当时,Lua 可以小幅改善启动时间,并且由于配置简单,在使用以 Lua 编写的插件时会很有用。
从 Vim 迁移[编辑 | 编辑源代码]
要将现有的 Vim 配置迁移到 Neovim,只需将 ~/.vimrc
复制到 ~/.config/nvim/init.vim
。如果需要的话,将 ~/.vim/autoload/
的内容复制到 ~/.local/share/nvim/site/autoload/
。
在 Vim 和 Neovim 间共享配置[编辑 | 编辑源代码]
Neovim 将 $XDG_CONFIG_HOME/nvim
而不是 ~/.vim
作为主要配置目录,并使用 $XDG_CONFIG_HOME/nvim/init.vim
而不是 ~/.vimrc
作为主要配置文件。
如果要继续使用 Vim,又希望在 Neovim 中 source 现有的 Vim 配置,参见 nvim-from-vim 或 :help nvim-from-vim
Neovim 命令。
加载插件[编辑 | 编辑源代码]
/etc/xdg/nvim/sysinit.vim
会自动 source 从官方软件仓库或 AUR 中安装的 Vim 或 Neovim 插件,因此无需额外设置。大量的插件都可以在两个地方找到,但最好通过插件管理器添加插件,最常用的是 vim-plug(可用于 Vim 和 Neovim)和 packer(使用 Lua 编写,只能用于 Neovim 0.5 或更新的版本)。两者都允许深度的配置,从 GitHub 分支到运行时命令。
大多数为 Vim 编写的插件无需花费很多精力即可在 Neovim 上工作,不过不是每个为 Neovim 编写的插件都适用于 Vim,因此,如果你的目标是确保配置兼容两个版本,坚持使用 init.vim
或 .vimrc
提示与技巧[编辑 | 编辑源代码]
将 vi 和 vim 替换为 neovim[编辑 | 编辑源代码]
大部分情况下设置 $VISUAL
和 $EDITOR
环境变量应该就足够了。
一些应用程序可能硬编码 vi 或 vim 为默认编辑器,对于这种情况,安装 neovim-symlinksAUR 或 neovim-drop-inAUR。
将 init.vim 设置为指向 .vimrc 的符号连接[编辑 | 编辑源代码]
因为 Neovim 与标准 Vim 大部分兼容,可以将 nvim/init.vim
设置为指向原来 .vimrc
的符号连接,从而保留旧的配置选项:
$ ln -s ~/.vimrc ~/.config/nvim/init.vim
如果想要某几行特定于每个版本,可以使用 if
块:
.vimrc
if has('nvim') " 特定于 Neovim 的命令 else " 特定于标准 Vim 的命令 endif
真彩色支持[编辑 | 编辑源代码]
这个项目的 README
文件解释了如何为语法高亮添加 24 位“真彩色”支持,以及如何使用取色器实时查看效果。包含作者为 C++ 提供的语法高亮(如果安装的话)。
Lastplace cursor support[编辑 | 编辑源代码]
如果你想保留光标的最后位置,lastplace.lua 非常有用。只需将其放置在 ~/.config/nvim/plugin/
或系统目录 /usr/share/nvim/runtime/plugin/
中即可。
Language Server Protocol[编辑 | 编辑源代码]
Neovim 内置 Language Server Protocol 客户端,nvim-lspconfig 插件提供常见的配置。
Use as a pager[编辑 | 编辑源代码]
You can use the :Man
command to open manual pages. To open all manual pages with neovim set the MANPAGER
environment variable to nvim +Man!
.
For other pager support install either the nvimpagerAUR or the nvimpager-gitAUR package and set the PAGER
environment variable to nvimpager
.
You can also try page, packaged in page-gitAUR.
问题解决[编辑 | 编辑源代码]
退出后光标没有恢复到之前的状态[编辑 | 编辑源代码]
如果退出 Neovim 后光标仍闪烁,参见 neovim FAQ 中的解决方案。