如何安装 Vim 插件

不管你是手动安装仍是经过包管理器安装,插件均可以帮助你在工做流中打造一个完美的 Vim 。linux

虽然 Vim 是快速且高效的,但在默认状况下,它仅仅只是一个文本编辑器。至少,这就是没有插件的状况 Vim 应当具有的样子,插件构建在 Vim 之上,并添加额外的功能,使 Vim 不只仅是一个输入文本的窗口。有了合适的插件组合,你能够控制你的生活,造成你本身独特的 Vim 体验。你能够自定义你的主题,你能够添加语法高亮,代码 linting,版本跟踪器等等。git

怎么安装 Vim 插件

Vim 能够经过插件进行扩展,但很长一段时间以来,并无官方的安装方式去安装这些插件。从 Vim 8 开始,有一个关于插件如何安装和加载的结构。你可能会在网上或项目自述文件中遇到旧的说明,但只要你运行 Vim 8 或更高版本,你应该根据 Vim 的官方插件安装方法安装或使用 Vim 包管理器。你可使用包管理器,不管你运行的是什么版本(包括比 8.x 更老的版本),这使得安装过程比你本身维护更新更容易。github

手动和自动安装方法都值得了解,因此请继续阅读以了解这两种方法。vim

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

所谓的 “Vim 包”是一个包含一个或多个插件的目录。默认状况下,你的 Vim 设置包含在 ~/.vim 中,这是 Vim 在启动时寻找插件的地方。(下面的示例使用了通用名称 vendor 来表示插件是从其它地方得到的。)bash

当你启动 Vim 时,它首先处理你的 .vimrc文件,而后扫描 ~/.vim 中的全部目录,查找包含在 pack/*/start 中的插件。curl

默认状况下,你的 ~/.vim 目录(若是你有的话)中没有这样的文件结构,因此设置为:编辑器

$ mkdir -p ~/.vim/pack/vendor/start
复制代码

如今,你能够将 Vim 插件放在 ~/.vim/pack/vendor/start 中,它们会在你启动 Vim 时自动加载。ui

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

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

启动 Vim 或者 gvim,而后键入以下命令:spa

:NERDTree
复制代码

Vim 窗口左侧将打开一个文件树。

NERDTree plugin
NERDTree plugin

若是你不想让一个插件每次启动 Vim 时都自动加载,你能够在 ~/.vim/pack/vendor 中建立 opt 文件夹:

$ mkdir ~/.vim/pack/vendor/opt
复制代码

任何安装到 opt 的插件均可被 Vim 使用,可是只有当你使用 packadd 命令将它们添加到一个会话中时,它们才会被加载到内存中。例如,一个虚构的叫 foo 的插件:

:packadd foo
复制代码

Vim 官方建议每一个插件项目在 ~/.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 插件吗?请在评论中告诉咱们吧!


via: opensource.com/article/20/…

做者:Seth Kenlon 选题:lujun9972 译者:qianmingtian 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关文章
相关标签/搜索