• 虽说它名声吓人,但 Neovim 是一款相当值得学习的强大文本编辑器。
  • Neovim 是 Vim 的直接替代者,有着全面革新的架构,还支持用 Lua 编写的插件。
  • 插件能够给 Neovim 增添全新种类的功能。

不管您是经验丰富的编码人员,还是刚开始编程,或者只是想编辑几个文件,一个好的文本编辑器都是不可或缺的工具。虽然它名声吓人,而且,没错,有一点学习曲线,但 Neovim 绝对值得学习,甚至可能比其著名的前辈更值得。

Neovim 是啥

Neovim 是啥

要解释Neovim是啥,咱们得往后退一步,讲讲导致它出现的缘由。在 Unix 和类 Unix 操作系统(包括 Linux)的历史中,很少有软件比 vi 更知名。这个文本编辑器可以追溯到 1976 年,您几乎可以肯定这是您在任何 Linux 系统上都会找到的默认文本编辑器。

在其他关键功能里,vi 运用了模态编辑。简而言之,这意味着您要么在插入模式下操作,在该模式下您“插入”文本,要么在正常模式下操作,在该模式下,按键不是输入文本,而是执行各种与编辑相关的操作。更好的是,您可以在某种语言中将这些命令链接起来,只需几次按键即可实现强大的编辑功能。

尽管 vi 功能挺强,可它的基本特性不太适合规模较大或者更复杂的项目。Vim 并非首个 vi 克隆,不过这个版本,代表“vi 改进版”,是由 Bram Moolenaar 编写,最初于 1991 年为 Commodore Amiga 发布。Vim 添加了许多我们如今在文本编辑器中认为理所当然的功能,如语法高亮、自动完成和 Unicode 支持。

在很多方面,Neovim 就像 Vim 之于 vi。Neovim 能够充当 Vim 的直接替代品,以至于要是您乐意,能够接着使用您原来的.vimrc 文件。也就是说,Neovim 还支持用 Lua 脚本编写您的配置,同时确实提供了更强大的功能,特别是如果您已经是编码人员。

Vim 和 Neovim 周围都有活跃的开发人员社区,并且这些项目似乎没有激烈的竞争。虽然 Neovim 常常率先获取新功能,而且一些更具实验性的功能或许永远进不了更成熟的编辑器,不过它们看起来都挺不错的。

Vim 和 Neovim 之间的关键差异

Vim 和 Neovim 之间的关键差异

首先,Vim 和 Neovim 之间的相似之处要多于差异之处。尽管我作为 Vim/Neovim 的用户已经多年,可我仍在桌上保留了一份德鲁·尼尔的《实用 Vim》。尽管书名中明显没有“neo”,但我在那本书中还没有读到在 Neovim 中不适用的技巧。

对于开发者而言,Neovim 的目标在于更易于维护和扩展,并且可能具备更先进的用户界面。这意味着对于用户来说,我们能更快地获得新奇的功能,同时简化的代码库应使维护更容易,以确保我们能够继续使用这些功能。

实际上,正如上文已经暗示的那样,Neovim 和 Vim 之间的主要差别在于插件生态系统。不仅 Lua 是一种比 Vimscript 更为广泛为人所知的语言,而且通常来说,Neovim 所使用的插件架构让插件对环境拥有更多的控制权。这意味着插件可以以全新的方式改变 Neovim。

除了能够选择将 Lua 用作配置文件之外,Neovim 还采用了不同的目录结构。Vim 倾向于在您的主目录中查找.vimrc,而 Neovim 遵循 XDG 基本目录规范。如果您使用的是 Mac,这对您来说可能没有任何意义,但对于 Linux 用户,这意味着您的 Neovim 配置与许多其他程序一样位于 $HOME/.config/nvim 中。

Neovim 基础

Neovim 基础

Neovim 不像 Vim 那样广泛或者常见(至少目前还并非如此),不过它在大多数主要的 Linux 发行版上依然可用。

安装 Neovim

安装 Neovim

在 Ubuntu 或 Debian 系统上,运行:

sudo apt install neovim

在 Fedora 上,运行以下命令:

sudo dnf install neovim

对于基于 Arch 的系统,运行:

sudo pacman -S neovim

为了获得最佳性能,一旦安装了 Neovim,使用 nvim 命令运行应用程序,然后按 Escape 键确保您处于正常模式,然后输入以下内容:

:checkhealth

如果 Neovim 所依赖的任何其他程序未安装,此命令将会告知您。万一您日后遇到问题,知晓这一点会很有用。

学习基础知识

学习基础知识

Vim 以及 Neovim 向来都被认为是难以学习的软件。

我觉得这种看法在很大程度上是不对的。是的,习惯模态编辑是需要花一点时间的,但除此之外,学习快捷键并不比在其他任何应用程序中学习键盘快捷键更复杂。

幸运的是,Vim 和 Neovim 都带有一个内置的教程来指导您。关于 Neovim 要学习的东西太多了,超出了本文的范畴,但内置教程是一个很好的起点。

要开始学习,请运行 nvim(假设您还没有),然后运行以下命令:

:Tutor

而且,至少您将 学习如何退出程序。

配置 Neovim

配置 Neovim

与使用单个整体的.vimrc 文件的标准 Vim 不同,假设您使用 Lua 文件,Neovim 可以使用更模块化的方法。这对实际的编辑器性能没有太大影响,但如果您使用大量自定义内容和插件,它确实有助于对您的配置进行整理。

当然,如果您是 Neovim 的新手,您可能还没有很多需要添加的自定义内容。也就是说,如果您对编写 Python 代码感兴趣,您可能想要安装一些使编写 Python 代码更简单的插件。Neovim 的模块化架构使您可以轻松地将这些插件隔离到子文件夹中的自己的配置文件中,因此,如果您决定不喜欢某个插件,很容易从您的配置中删除它。

再次强调,精心打造完美的 Neovim 配置不在本文的讨论范围内。如果您像大多数人一样,您可能会通过从 GitHub 上找到的各种点文件中提取零碎的部分来组合一个配置。幸运的是,有一个更简单的选择。

Neovim 定制变得简单

Neovim 定制变得简单

它始于人们分享他们自己的配置,但多年来,各种编辑器都出现了“发行版”,它们与 Linux 发行版并非完全相同。Neovim 也有这些,实际上是预先配置好的配置文件,您可以将其放入您的主目录,进行测试,然后根据您的喜好进行调整。

两个流行的 Neovim 发行版是 LazyVim 和 NvChad。如果您查看这两个发行版中的任何一个的屏幕截图,您可能会惊讶于您仍然在看 Neovim。带有图标、侧边栏和屏幕顶部的可视化标签,您几乎会以为您在看 VS Code 的屏幕截图。

LazyVim 的目标是成为最完整的开箱即用版,以至于如果您已经熟悉 Neovim,可能会觉得它太不一样了。也就是说,对于初学者来说,这个发行版很棒,它有一个内置的包,一旦您开始输入组合键,就会为您提供有关按下给定键会产生何种效果的便捷提示。

另一方面,NvChad 一开始功能没那么完备,但仍提供了超越原生 Neovim 的大幅修改后的体验。如果您想要一种感觉像现代编辑器的东西,但又想在首次尝试时更深入地探索 Neovim 领域,可以试试这个。

即使您选择从最基础的编辑器起步,Neovim 和 Vim 也非常值得学习,即使您很快转向其他编辑器。您永远不知道了解一些关于 20 世纪 70 年代的文本编辑器的知识何时会有用处。