Neovim
Neovim 是 Vim 的一个分支,旨在改进代码库,从而更容易实现 API,改善用户体验和插件实现。Neovim 启发了像 Helix 这样的编辑器。
安装
Install neovim 软件包,或者 neovim-gitAUR 以获取最新的开发版本,该版本强烈建议使用 Lua 作为其主要配置语言。为了使系统剪贴板与 Neovim 一起工作,您可能需要安装 xclip (X11) 或 wl-clipboard (Wayland)。
:help provider-clipboard
neovim 命令。也可以安装许多 GUI 和其他相关项目之一
- neovim-qt — 快速、轻量级且可自定义的 Qt GUI。提供现代化的界面,包括对多标签页、拆分窗口和可自定义主题的支持。
- neovim-gtkAUR — GTK GUI。提供现代化的可自定义界面,包括对拆分窗口、多标签页和可自定义主题的支持。
- uivonim-gitAUR — (非活跃)简单轻量级的 GTK GUI。提供简约的界面,包括对拆分窗口和可自定义主题的支持。
- uivonim-gitAUR || uivonim-gitAUR
- neovide — Rust GUI。
- neoray-gitAUR — Go GUI。
- gnvimAUR — GTK GUI。
- fvimAUR — F# GUI。
配置
Nvim 的用户特定配置文件位于 $XDG_CONFIG_HOME/nvim/init.vim
,默认情况下为 ~/.config/nvim/init.vim
。系统范围的配置文件位于 $XDG_CONFIG_DIRS/nvim/sysinit.vim
,默认情况下为 /etc/xdg/nvim/sysinit.vim
。当系统范围的配置文件不存在时,Nvim 会检查 /usr/share/nvim/sysinit.vim
,该文件不 предназначен для редактирования пользователями。[1] 默认情况下,前者全局配置文件不存在。如果您创建了前者文件,您可能希望它引用后者,如果您仍然想要它提供的功能,即允许 pacman 安装的 vim 软件包与 Nvim 一起工作。
Nvim 与 Vim 的大多数选项兼容;但是,也有 Nvim 特有的选项。有关 Nvim 选项的完整列表,请参阅 Neovim 的帮助文件。
Nvim 的数据目录位于 ~/.local/share/nvim/
,包含打开文件的交换文件、ShaDa(共享数据)文件以及插件的站点目录。
从 Nvim 的 0.5 版本开始,可以通过 Lua 设置 Nvim,默认情况下为 ~/.config/nvim/init.lua
,API 尚不成熟,但常见的配置可以开箱即用,无需更多步骤。请参阅 [2] 以获取有关如何转换当前配置的建议。目前,使用 init.lua
与常见的 init.vim
相比没有太多优势,但如果正确完成,Lua 可以略微提高启动速度,并且在由于易于配置而使用多个用 Lua 编写的插件时,它会变得特别有用。
从 Vim 迁移
如果您希望将现有的 Vim 配置迁移到 Nvim,只需将您的 ~/.vimrc
复制到 ~/.config/nvim/init.vim
。如果适用,请将 ~/.vim/autoload/
的内容复制到 ~/.local/share/nvim/site/autoload/
。
Neovim 使用 $XDG_CONFIG_HOME/nvim
而不是 ~/.vim
作为其主要配置目录,并使用 $XDG_CONFIG_HOME/nvim/init.vim
而不是 ~/.vimrc
作为其主要配置文件。
如果您希望继续使用 Vim 并在 Nvim 中引用您现有的 Vim 配置,请参阅 nvim-from-vim 或 :help nvim-from-vim
neovim 命令。
加载插件
从官方仓库或 AUR 安装的 Vim/Nvim 插件会自动被 /etc/xdg/nvim/sysinit.vim
引用,因此无需采取任何额外的步骤。在这两个地方都可以找到大量的插件,但添加插件最推荐的方法是使用插件管理器,最常用的插件管理器是 vim-plugAUR,它适用于 Vim 和 Nvim,以及 lazy.nvim,它仅适用于 Nvim 并且是用 Lua 编写的。它们都允许富有表现力的配置,从 github 分支到运行时命令。
大多数为 vim 编写的插件在 Nvim 上都可以轻松工作,但并非每个为 Nvim 编写的插件都适用于 Vim,因此,如果您的目的是确保兼容的配置,请坚持使用传统的 init.vim
或 .vimrc
技巧和窍门
用 Neovim 替换 vi 和 vim
在大多数情况下,设置 $VISUAL
和 $EDITOR
环境变量应该就足够了。
某些应用程序可能会硬编码 vi 或 vim 作为默认编辑器;要在它们的位置使用 neovim,请安装 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 specific commands else " Standard vim specific commands endif
真彩色支持
这个项目的 READMEs
解释了如何为您的语法高亮添加 24 位“真彩色”支持,以及如何使用颜色选择器实时查看其外观。附带作者(如果已安装)的 C++ 语法高亮。
上次光标位置支持
如果您喜欢保存光标的最后位置,lastplace.lua 非常有用。它只需要放置在 ~/.config/nvim/plugin/
或系统范围的目录 /usr/share/nvim/runtime/plugin/
中。
语言服务器协议
Neovim 包含一个内置的语言服务器协议客户端,nvim-lspconfig 插件为其提供常用配置。
有关 Arch 软件包的列表,请参阅 语言服务器协议。
用作分页器
您可以使用 :Man
命令打开手册页。要使用 neovim 打开所有手册页,请将 MANPAGER
环境变量设置为 nvim +Man!
。
对于其他分页器支持,请安装 nvimpagerAUR 或 nvimpager-gitAUR 软件包,并将 PAGER
环境变量设置为 nvimpager
。
您也可以尝试 page,打包在 page-gitAUR 中。
故障排除
退出后光标未恢复到之前的状态
如果退出 neovim 后光标持续闪烁,请参阅 neovim FAQ 中的解决方案。