如何安装 Vim 插件

无论您是手动安装还是使用包管理器安装,插件都可以帮助您创建完美适合您工作流程的 Vim。
80 位读者喜欢这篇文章。
Team checklist and to dos

虽然 Vim 快速且高效,但默认情况下,它只是一个简单的文本编辑器。至少,如果没有插件,它就是这样,插件构建在 Vim 之上,并添加额外的功能,使其不仅仅是一个用于输入文本的窗口。通过正确的插件组合,您可以掌控您的生活,打造您自己独特的 Vim 体验。您可以自定义您的主题,并且您可以添加语法高亮、代码检查、版本跟踪器以及更多功能。

如何安装 Vim 插件

Vim 可以通过插件进行扩展,但长期以来,一直没有官方的插件安装方法。然而,从 Vim 8.x 系列开始,就围绕插件的预期安装和加载方式建立了一个结构。您可能会在网上或项目 README 文件中遇到旧的说明,但是只要您运行的是 Vim 8 或更高版本,您就应该根据 Vim 的官方插件安装方法或使用 Vim 包管理器进行安装。无论您运行什么版本(包括早于 8.x 的版本),您都可以使用包管理器,这使得安装过程比自己维护更新更容易。

手动和自动方法都值得了解,所以请继续阅读以了解这两种方法。

手动安装插件(Vim 8 及以上版本)

Vim 包是一个包含一个或多个插件的目录。默认情况下,您的 Vim 设置包含在 ~/.vim 中,因此 Vim 在您启动它时会在那里查找插件。(下面的示例使用通用名称 vendor 来表示插件是从非您自己的实体获得的。)

当您启动 Vim 时,它首先处理您的 .vimrc 文件,然后扫描 ~/.vim 中的所有目录,以查找包含在 pack/*/start 中的插件。

默认情况下,您的 ~/.vim 目录(如果您甚至有一个)没有这样的文件结构,因此请使用以下命令进行设置

$ mkdir -p ~/.vim/pack/vendor/start

现在您可以将 Vim 插件放在 ~/.vim/pack/vendor/start 中,它们将在您启动 Vim 时自动加载。

例如,尝试安装 NERDTree,这是一个用于 Vim 的基于文本的文件管理器。首先,使用 Git 克隆 NERDTree 仓库的快照

$ git clone --depth 1 \
  https://github.com/preservim/nerdtree.git \
  ~/.vim/pack/vendor/start/nerdtree

启动 Vim 或 gvim,并键入此命令

:NERDTree

文件树将在您的 Vim 窗口左侧打开。

NERDTree plugin

如果您不希望插件在每次启动 Vim 时都自动加载,您可以在您的 ~/.vim/pack/vendor 目录中创建一个 opt 目录

$ mkdir ~/.vim/pack/vendor/opt

安装到 opt 中的任何插件都可供 Vim 使用,但在您使用 packadd 命令将它们添加到会话之前,它们不会加载到内存中。

例如,要加载一个名为 foo 的虚构插件

:packadd foo

官方建议,每个插件项目都在 ~/.vim/pack 中拥有自己的目录。例如,如果您要安装 NERDTree 插件和虚构的 foo 插件,您将创建以下结构

$ mkdir -p ~/.vim/pack/NERDTree/start/
$ git clone --depth 1 \
  https://github.com/preservim/nerdtree.git \
  ~/.vim/pack/NERDTree/start/NERDTree
$ mkdir -p ~/.vim/pack/foo/start/
$ git clone --depth 1 \
  https://notabug.org/foo/foo.git \
  ~/.vim/pack/foo/start/foo

这是否方便取决于您。

使用 Vim 包管理器(任何 Vim 版本)

自 Vim 8 系列以来,包管理器变得不那么有用了,但一些用户仍然喜欢它们,因为它们能够自动更新多个插件。有几个包管理器可供选择,它们各不相同,但 vim-plug 具有一些很棒的功能,并且拥有所有包管理器中最好的文档,这使得它易于上手并在以后深入探索。

使用 vim-plug 安装插件

安装 vim-plug,使其在启动时自动加载,使用

$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
  https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

创建一个 ~/.vimrc 文件(如果您还没有),并输入以下文本

call plug#begin()
Plug 'preservim/NERDTree'
call plug#end()

每次要安装插件时,都必须在 plug#begin()plug#end 行之间输入插件的名称和位置。(上面使用 NERDTree 文件管理器作为示例。)如果您想要的插件未托管在 GitHub 上,那么您可以提供完整的 URL,而不仅仅是 GitHub 用户名和项目 ID。您甚至可以“安装” ~/.vim 目录之外的本地插件。

最后,启动 Vim 并提示 vim-plug 安装 ~/.vimrc 中列出的插件

:PlugInstall

等待插件下载完成。

使用 vim-plug 更新插件

编辑 ~/.vimrc 并发出命令来执行安装可能看起来并没有比手动安装过程节省多少,但 vim-plug 的真正好处在于更新。要更新所有已安装的插件,请发出以下 Vim 命令

:PlugUpdate

如果您不想更新所有插件,可以通过添加插件的名称来更新任何子集

:PlugUpdate NERDTree

恢复插件

vim-plug 的另一个好处是其导出和恢复功能。正如任何 Vim 用户所知,Vim 的工作方式通常对每个用户都是独一无二的——部分原因是插件。一旦您安装并配置了正确的插件组合,您最不希望的就是丢失它们的踪迹。

Vim-plug 具有以下命令来生成用于恢复所有当前插件的脚本

:PlugSnapshot ~/vim-plug.list

vim-plug 还有许多其他功能,因此请参阅其 项目页面 以获取完整文档。

创建完美的 Vim

当您整天在一个程序中工作时,您希望每个小细节都能尽可能地为您服务。了解 Vim 及其众多插件,直到您为您所做的工作构建了完美的应用程序。

您有最喜欢的 Vim 插件吗?请在评论中告诉我们!

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时进行。

5 条评论

太棒了!这样一篇文章早就应该出现了。我已经使用 Vim 多年了,安装插件就像尝试和错误。

Estes muy bueno, gracias Victor!

回复 作者 victorhck

通常我从不在博客上评论,但你的文章太有说服力了,以至于我忍不住要说些什么。你做得很好,伙计,继续加油。

谢谢你,伙计,非常感谢。
我总是忘记如何在新机器上设置基本插件文件夹,这篇文章随时都能帮助我

© . All rights reserved.