我使用 Vim 文本编辑器大约有二十年了。在一段时间内,我一直在自定义我的 Vim 配置,直到最近几年才开始使用插件。
最近,当我重新设置我的环境(我经常这样做)时,我认为这是一个很好的机会,可以确定用于多种语言编程的最佳 Vim 插件,以及将这些插件组合用于我编程的每种语言的方法。
我确实为特定语言和配置文件使用某些插件(例如,我只在我的 Ansible 配置文件中安装 Rocannon),而且我不会在这里详细介绍这些插件——那将是一个很长的列表。但是下面描述的 10 个 Vim 插件是我最喜欢的,无论我使用什么编程语言,我几乎在每个配置文件中使用它们。
1. Volt
我的首选甚至不是插件;而是,它取代了像 Vundle 这样的插件,所以我在这里列出它。
Volt 是一个 Vim 插件管理器,它位于 Vim 之外。您可以使用它来安装插件并创建称为“配置文件”的插件组合。您可以使用单个命令启用新配置文件:**volt profile set myprofile**。这样,我可以做一些事情,比如仅为我的 Python 配置文件启用 indentpython 插件。Volt 还提供了一种简单的方法来执行每个插件的配置。配置在配置文件之间共享,因此您可以安装插件一次,并在多个配置文件中使用它们。
Volt 仍然相对较新且不完美(例如,无论您使用多少配置文件,每个插件只能有一个配置文件),但除此之外,我发现它非常方便、非常快且非常简单。

2. Vim-Rainbow
除了 Python,几乎所有主要的编程语言都使用括号。圆括号、方括号和花括号。通常,它们使用多对括号,一对嵌入另一对。找出哪个右括号属于哪个左括号可能会变得困难和烦人。我经常发现自己数圆括号——尤其是在复杂的 Bash 脚本中——以确保我做的一切都正确。
这是 vim-rainbow 插件来救援!它为每对括号赋予唯一的颜色,因此很容易识别哪些括号彼此属于。它非常有用,而且也非常丰富多彩。

3. lightline
有很多 Vim 插件,例如 Powerline,它们在屏幕底部放置一个栏,以显示您正在处理的文件、您在文件中的位置、文件类型等。每个插件都有优点和缺点,在简要权衡之后,我选择了 lightline。它相对较小,易于设置,如果您喜欢那种东西,则非常易于扩展,并且不需要任何其他工具或插件。

4. NERDTree
NERDTree 是一个经典插件。在大型项目中,很难找到包含您需要编辑的行的文件的确切名称和位置。使用一个快速的按键(在我的情况下是 **F7**,因为我在我的 .vimrc 配置文件中将 NERDTree 绑定到 F7),一个资源管理器窗口在一个垂直拆分中打开,我可以轻松地浏览到我想要的文件并打开它。对于大型代码库来说,这是一个必备的插件。或者对于像我这样容易忘记文件名的人来说。

5. NERD Commenter
所有程序员,在某个时候,都会编写引入难以调试的问题的代码,这导致他们决定注释掉或撤消该代码。这就是 NERD Commenter 的用武之地。选择代码,点击 **Leader+cc**,您的代码就被注释掉了。(标准的 Vim Leader 键是 **/** 字符。)点击 **Leader+cn**,您的代码就被取消注释了。NERD Commenter 应该会自动为大多数文件类型使用正确的注释字符。例如,如果您正在编辑 BIND 区域文件 并将文件类型设置为 bind zone,Vim 将正确地使用 **;**(分号)字符来注释掉行。

6. Solarized
我喜欢我的 Vim 颜色。真的,我通常喜欢终端颜色。我使用 Solarized Vim 颜色方案很长时间了,并且我设置了我的终端、dir_colors 和 Vim 以保持一致。
但是,时不时地,我会根据我所处的环境、落在屏幕上的光线量以及我是否需要将某些东西放在大屏幕上供他人阅读,在浅色和深色模式之间切换。
显然,您可以获取您喜欢的任何旧颜色方案,但我喜欢 Solarized 具有浅色和深色模式,一种在两者之间轻松切换的方式,并且它不太具有侵入性这一事实。我的第二个选择是 Monokai。Volt 插件管理器使我可以轻松地在两者之间切换,因此我可以将 Monokai 用于 Python 编程,将 Solarized 用于 Bash。
我不包括 Solarized 的图像,因为本文中的所有其他图像都使用 Solarized 浅色或深色,所以请查看它们。
7. fzf
当您寻找文件时,有时您想要文件资源管理器,有时您只想在键盘上随便敲击一些与您正在寻找的文件名大致相似的东西,对吗?
fzf(或“模糊查找器”)插件为您提供了这个。点击 **:FZF** 并开始输入。一个不断缩短的列表将向您显示或多或少与您正在寻找的内容匹配的文件。我经常使用它,可能比现在使用 NERDTree 更多。一个小的缺点是这个插件在 fzf 二进制文件中有一个外部依赖项,所以您也必须安装它。它适用于 Fedora、Debian 和 Arch,但我不认为它适用于 EPEL。

8. ack
时不时地,您需要搜索包含特定行或特定单词的文件。我真的很喜欢为此使用 ack 插件,最好与称为“银色搜索者”的命令 **ag** 结合使用。这种组合非常快,并且涵盖了我将使用 **grep** 或 **vimgrep** 的绝大多数事情。缺点是您需要安装 ack 或 ag 才能使其工作。好消息是 ag 和 ack 都适用于 Fedora 和 EPEL7。

9. gitgutter
大多数 IT 人员都使用过 Git 和 Git 存储库中的文件。gitgutter 插件在您的行号附近添加一列,其中显示已更改 (~)、已添加 (+) 和已删除 (-) 行的符号。这对于跟踪您所做的更改非常有用,并且可以让您专注于手头的任务,例如编写补丁以修复一个关键错误。这个插件有一个小的性能差距,插件有时需要一小会儿才能赶上您的更改,但它仍然非常有用。

10. Tag List
如果您正在编程任何大小的文件,很容易迷失方向,您可能会发现自己上下滚动查找某个函数。使用 Tag List 插件,您只需键入 **:Tlist** 即可获得包含变量、类型、类和函数的垂直拆分,您可以轻松跳转到这些变量、类型、类和函数。这适用于多种语言,例如 Java、Python 以及 **ctags** 实用程序可以使用的任何其他文件类型……这很多。

就是这样:这 10 个 Vim 插件让我的系统管理员和兼职程序员的生活更轻松、更好。您正在使用哪些 Vim 插件?请在评论中分享您的收藏。
4 条评论