用于多种语言编程的十大 Vim 插件

使用这 10 个 Vim 插件,让您作为程序员或系统管理员的生活更美好。
192 位读者喜欢这篇文章。
OpenStack source code (Python) in VIM

Alex Sanchez 提供。CC BY-SA 4.0。

我已经使用 Vim 文本编辑器大约二十年了。 在一段时间内,我一直在自定义我的 Vim 配置,直到最近几年才使用插件。

最近,当我重新进行我的设置(我经常这样做)时,我决定这是一个很好的机会来确定用于多种语言编程的最佳 Vim 插件,以及将这些插件与我编程的每种语言相结合的方法。

我确实为特定的语言和配置文件使用某些插件(例如,我只在我的 Ansible 配置文件中安装 Rocannon),并且我不会在这里深入介绍这些插件——那将是一个很长的列表。 但是下面描述的 10 个 Vim 插件是我最喜欢的,无论我使用哪种编程语言,我都几乎在每个配置文件中使用它们。

1. Volt

我的第一选择甚至不是插件; 而是它取代了像 Vundle 这样的插件,所以我就把它列在这里。

Volt 是一个位于 Vim 之外的 Vim 插件管理器。 您可以使用它来安装插件并创建称为“配置文件”的插件组合。 您可以使用一个命令启用新的配置文件: volt profile set myprofile。 这样,我就可以做一些事情,例如仅为我的 Python 配置文件启用 indentpython 插件。 Volt 还提供了一种简单的方法来进行每个插件的配置。 配置在配置文件之间共享,因此您可以安装一次插件并在多个配置文件中使用它们。

Volt 仍然比较新,还不完美(例如,无论您使用多少配置文件,每个插件只能有一个配置文件),但除此之外,我发现它非常方便、非常快速和非常简单。

Volt plugin

2. Vim-Rainbow

除了 Python 之外,几乎所有主要的编程语言都使用括号。 圆形的、方形的和花括号的。 通常,它们使用多对括号,其中一对嵌入在另一对中。 弄清楚哪个右括号属于哪个左括号可能会变得困难和烦人。 我经常发现自己数圆括号——尤其是在复杂的 Bash 脚本中——以确保我做对了所有事情。

这是 vim-rainbow 插件来拯救! 它为每对括号赋予独特的颜色,因此很容易识别哪些括号相互对应。 它非常有用,而且色彩也很丰富。

vim-rainbow plugin

3. lightline

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

Lightline plugin

4. NERDTree

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

NERDTree vim plugin

5. NERD Commenter

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

NERD Commenter

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 中。

fzf Vim plugin

8. ack

偶尔,您想搜索包含特定行或特定单词的文件。 我真的很喜欢用于此目的的 ack 插件,最好与 ag(一个被称为“白银搜索者”的命令)结合使用。 这种组合非常快,并且涵盖了我将使用 grepvimgrep 的绝大多数事情。 缺点是您需要安装 ack 或 ag 才能使其工作。 好消息是 ag 和 ack 都适用于 Fedora 和 EPEL7。

ack vim plugin

9. gitgutter

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

gitgutter vim plugin

10. Tag List

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

Tag List vim plugin

这就是我所用的:这 10 个用于 Vim 的插件使我作为系统管理员和兼职程序员的生活更加轻松和美好。 您正在使用什么 Vim 插件? 请在评论中分享您最喜欢的插件。

接下来要阅读的内容
标签
User profile image.
嗨! 我是 Maxim,Red Hat Benelux 团队的解决方案架构师和传播者。 Red Hat 以各种可能的方式辐射开源,这使其成为像我这样的开源爱好者工作的完美公司。

4 条评论

Python 使用括号... 列表、字典等

你是对的,当然。

我最近没有编写很多 Python 代码,我忽略了这个——非常明显的——错误。

感谢您的评论!

回复 Ngin (未验证)

我喜欢这个列表! 肯定会尝试一下 Tag List。

FZF 内置了 Ag,因此您不需要 Ack。

感谢您的评论,Michael!

是的,我需要研究一下 FZF 的 Ag 功能。 我觉得我在安装 FZF 之前就开始使用 Ack 插件了,所以我添加了 FZF 功能,而不是替换 Ack。 这会是一个很好的第二部分的主题 :)

回复 ,来自 Michael Neeley (未验证)

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.