Neovim

来自 ArchWiki

Neovim 是 Vim 的一个分支,旨在改进代码库,从而更容易实现 API,改善用户体验和插件实现。Neovim 启发了像 Helix 这样的编辑器。

安装

Install neovim 软件包,或者 neovim-gitAUR 以获取最新的开发版本,该版本强烈建议使用 Lua 作为其主要配置语言。为了使系统剪贴板与 Neovim 一起工作,您可能需要安装 xclip (X11) 或 wl-clipboard (Wayland)。

注意: 对于 neovim,其某些功能被委托给外部 “提供程序”。对于 Python 提供程序,请使用 python-pynvim。对于剪贴板提供程序,请参阅 provider-clipboard:help provider-clipboard neovim 命令。

也可以安装许多 GUI 和其他相关项目之一

  • neovim-qt — 快速、轻量级且可自定义的 Qt GUI。提供现代化的界面,包括对多标签页、拆分窗口和可自定义主题的支持。
https://github.com/equalsraf/neovim-qt || neovim-qt
  • neovim-gtkAUR — GTK GUI。提供现代化的可自定义界面,包括对拆分窗口、多标签页和可自定义主题的支持。
https://github.com/Lyude/neovim-gtk || neovim-gtkAUR
  • uivonim-gitAUR — (非活跃)简单轻量级的 GTK GUI。提供简约的界面,包括对拆分窗口和可自定义主题的支持。
uivonim-gitAUR || uivonim-gitAUR
https://github.com/neovide/neovide || neovide
https://github.com/hismailbulut/neoray || neoray-gitAUR
https://github.com/vhakulinen/gnvim || gnvimAUR
  • fvimAUR — F# GUI。
https://github.com/yatli/fvim || fvimAUR

配置

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/

Vim 和 Nvim 之间共享配置

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-symlinksAURneovim-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!

对于其他分页器支持,请安装 nvimpagerAURnvimpager-gitAUR 软件包,并将 PAGER 环境变量设置为 nvimpager

您也可以尝试 page,打包在 page-gitAUR 中。

故障排除

退出后光标未恢复到之前的状态

如果退出 neovim 后光标持续闪烁,请参阅 neovim FAQ 中的解决方案。

参见