Vim 是 Linux 下的常用文本编辑器,但也经常被称为是一个上古神器,因为它对于初学者而言相当不友好,也不好入门。

  但是,对于高手而言,他们不仅将 Vim 玩得很溜,而且还将它当作代码开发的主要工具。为什么?因为 VS 等 IDE 比较庞大,运行起来比较慢,而 Vim 就相当轻量了,瞬间就能打开代码并开始工作,这对于追求效率的高手而言自然是爱不释手。

  但是,如果是官方版的 Vim ,依然是局限性相当大,十分不方便。但是高手毕竟是高手,高手懂得使用插件。下面良许就介绍高手常用的 3 个很实用的插件。

  1、括号自动补全插件

  这个插件叫 Auto Pairs ,它可以自动补全配对的符号,比如:花括号、方括号、圆括号、引号等。这对于我们程序员而言非常有用,因为在代码里我们大量使用到了上述的几种配对符号,如果能自动补全那将很大提高我们的写 bug 效率。

  使用这个插件后,当我们敲入一个符号时,会自动补全它的所匹配的另一个符号。比如,我们敲入 [ 时,它会自动补全 ] 。当我们删掉 [ 时,] 也自动被删除了。

  如果我们开启了自动缩进,那么它不仅会在合适的位置补全匹配的符号,还会将光标插入到合适的位置。比如下面这段 Go 代码:

 

package main
  import "fmt"
  func main() {
  x :=true
  items :=[]string{"tv", "pc", "tablet"}
  if x {
  for _, i :=range items
  }
  }

  现在,我在倒数第 3 行 items 后面插入一个花括号 { ,然后敲一下回车,我们就得到这样的结果:

 

package main
  import "fmt"
  func main() {
  x :=true
  items :=[]string{"tv", "pc", "tablet"}
  if x {
  for _, i :=range items {
  | (光标在这里了)
  }
  }
  }

  当然 Auto Pairs 还提供了很多选项,我们可以在它的 Github 仓库查看更多用法。但是,以上的这些基本用法就已经可以节约我们很多时间了。

  2、代码块注释插件

  作为一个合格的上古神器,Vim 没办法像那些 IDE 一样去注释代码块。但是有了 NERD Commenter 这个插件,我们就可以实现这样的目标。

  NERD Commenter 很智能,它可以自动识别代码,并给出对应语言的注释风格。最简单的方法,我们可以在命令模式下通过敲 +空格 来快速注释代码块。在这里,键默认是反斜杠 键,我们也可以进行自定义。

  我们怎么选中多行呢?那就是要在 visual mode (可视化模式)下进行了,这是 Vim 的基本操作了。

  还有一个很有用的特性是 Sexy Comment (性感模式),我们可以使用 +cs 来触发。性感模式可以将代码块用很优雅的方式来注释,比如下面这种风格的注释就是性感模式:

  

package main
  import "fmt"
  func main() {
  /*
  * x :=true
  * items :=[]string{"tv", "pc", "tablet"}
  *
  * if x {
  * for _, i :=range items {
  * fmt.Println(i)
  * }
  * }
  */
  }

  3、添加包围符号插件

  Vim Surround 插件堪称是一个大杀器,因为它可以将现有的代码添加成对包围符号。比如我们现在有这么一句代码:

"Vim plugins are awesome !"

  如果我们想把引号去掉,只需敲 ds" 即可:

Vim plugins are awesome !

  如果我们想将双引号改成单引号,我们可以敲 cs"':

'Vim plugins are awesome !'

  想要换成其它符号也是一样的道理。不仅如此,它还对 HTML 或 XML 标记语言支持非常好。比如有这么一句 HTML 语句:

Vim plugins are awesome !

  现在我们想要加粗 awesome 这个词,我们可以将光标放在这个单词上,然后敲 ysiw ,它就会自动添加标记:

Vim plugins are awesome !

  Vim Surround 还可以以锯齿的方式,在语句的上下方添加包围符号,并将当前语句自动缩进。比如我们想在上面那条代码添加标签,我们可以敲 ySS

  :

Vim plugins are awesome !

  同样地,它的功能不仅于此,我们可以进它的 Github 仓库查看更多强大的功能。

  小结

  以上 3 个 Vim 插件,熟练使用的话将为我们节约很多时间,而且用起来也非常顺手,可以提高我们的效率。当然 Vim 社区里还有非常多大牛开发的很有用的插件,后续良许也会再推送一些好玩的插件,敬请期待!