使用这 10 个 Vim 插件,可让你在写代码或运维时,感受更棒。python
我使用 Vim 文本编辑器大约 20 年了。有一段时间,我一直在定制个人 Vim 配置,但在只有在最近两年我才会使用插件。linux
最近,当我从新安装系统时(就像我常常作的那样),我以为这是一次好的机会,我想找出多种编程语言环境下的最佳 Vim 插件,以及如何将这些插件和每种语言结合起来。git
有时,我会为特定的语言和配置使用特定的插件(例如,我只在 Ansible 配置中安装 Rocannon),在此不细讲了。不过下面介绍的 10 个 Vim 插件都是个人最爱,不管使用哪一种编程语言,我几乎都会使用它们。程序员
个人首选并非一个插件,可是它能够替换相似于 Vundle 的插件,因此在此介绍。github
Volt 是一个不依存于 Vim 的 Vim 插件管理器。你能够用它安装插件,并建立名为“profile”的插件组合。你可使用一个简单的命令 volt profile set myprofile
启用新的配置。这样我能够作到这样的事情,如为 Python 配置单独启用 indentpython 插件。Volt 还提供了一种针对每一个插件配置的简单方法,这些配置会在“profile”之间共享,所以只须要安装一次插件,就能够在多个“profile”之间使用。编程
Volt 仍是相对较新且不够完美(好比,无论你想要使用多少个“profile”,每一个插件只能有一个配置文件),但除此以外,我发现它很是方便、快速和简单。vim
除了 Python,几乎全部的主流编程语言都使用括号(小括号、方括号和大括号)。一般,它们会嵌套使用多对括号,所以很难搞清楚某个括号的开闭区间。我发现本身常常要数小括号,尤为是在复杂的 Bash 脚本中,以确保无误。浏览器
这时候就须要 vim-rainbow 插件!它为每对括号设置不一样的颜色,所以很容易识别出哪些括号是一对括号。它很是有用并且五彩斑斓。运维
Vim 有不少这种插件,例如 Powerline,它会在底部栏显示你正在处理的文件、光标所在的文件位置以及文件类型等信息。这些插件各有利弊,在简单比较后,我选择了 lightline。它相对较小,便于安装和扩展,而且不依赖于其余工具或插件。编程语言
NERDTree 是一个很经典的插件。在大型项目中,你可能很难找到想要编辑的内容所在文件的确切名称和路径。使用快捷键(我使用的是 F7
,由于我在 .vimrc
中配置了这个快捷键),搜索窗会以垂直分屏的方式打开,就能够轻松找到所需文件并打开它。对于大型项目,这是必备插件。对于那些常常忘记文件名的人也颇有用,好比我。
程序员们在写代码时,有时会遇到一些难以调试的问题,致使他们想要注释或不执行某段代码。这时候就须要 NERD Commenter 出场了。选择代码段,按 Leader 键 + cc
,代码就会被注释掉。(标准的 Vim Leader 键 是 /
字符。)按 Leader 键 + cn
,取消注释。对于大多数文件类型,NERD Commenter 会自动使用正确的注释符。例如,若是你正在编辑 BIND 区域文件,并将文件类型设置为 BIND 区域文件,Vim 会正确地使用 ;
(分号)字符进行注释。
我喜欢个人 Vim 主题配色。我也喜欢终端的主题色。我一直在 Vim 上使用 Solarized 配色,而且将个人终端、文件夹配色和 Vim 设为一致。
可是,有时我会根据周边环境、屏幕亮度以及是否须要分享投屏,来切换明暗模式。
显然,你能够选择本身喜欢的任何配色方案,但我喜欢 Solarized
,由于它有明暗模式功能,它能够简单快捷地切换两种模式。个人第二个选择是 Monokai。Volt 插件管理器让我能够轻松地在二者之间切换,所以我在 Python 编程时,使用 Monokai;Bash 编程时,使用 Solarized。
我没有给 Solarized 找相应的图片,由于本文中的全部其余图片都使用了 Solarized 中的浅色或深色效果,能够确认一下这些图片。
当寻找一个文件时,有时你想要一个文件浏览器,有时你只想在键盘上敲打出与文件名模糊匹配的内容,对吗?
fzf(全称 “模糊查找器”)插件提供了这一功能。打出 :FZF
并输入文件名内容。不断缩短的列表将显示出与你输入的文件名内容相匹配的一些文件。我常用它,最近使用它的频率估计比使用 NERDTree 还多。缺点是这个插件依赖于 fzf binary
,所以也必须安装这个依赖包。它适用于 Fedora、Debian 和 Arch,据我所知并不在 EPEL 中。
有时,你须要搜索包含特定行或特定单词的文件。我真的很喜欢使用 ack 插件,最好与 ag
结合使用,它俩的组合又被称为 “silver searcher”。这一组合的速度很是快,覆盖了 grep
或 vimgrep
的绝大多数使用场景。缺点是你须要安装 ack
或 ag
才能正常运行。好消息是 Fedora 和 EPEL7 均可以使用 ag
和 ack
。
大多数 IT 人员都使用 Git 和 Git 仓库中的文件进行工做。gitgutter 插件在行号附近添加了一列,经过符号显示该行的状态为:已更改(~
)、已添加(+
)或者已删除(-
)。这有利于跟踪你所作的更改,而且可使你专一于手头的任务,例如编写补丁来修复一个关键错误。
若是你在一个很大的文件中编写代码,会很容易忘记当前所在的位置,你可能须要上下滚动来查找某个功能。使用 Tag List 插件,只须要输入 :Tlist
,就能垂直分屏显示出包含变量、类型、类和函数的代码,你能够轻松跳转到这些变量、类型、类和函数。这个功能对于多语言一样适用,例如 Java、Python 以及任何可以使用 ctags
功能的文件类型。
以上介绍的 10 个 Vim 插件使我做为系统管理员和兼职程序员的生活变得更轻松。你正在使用哪些 Vim 插件?请在评论中分享你最爱的插件。
via: opensource.com/article/19/…
做者:Maxim Burgerhout 选题:lujun9972 译者:hello-wn 校对:wxy