Vim 是 linux 下的常用文本編輯器,但也經(jīng)常被稱為是一個上古神器,因為它對于初學者而言相當不友好,也不好入門。
但是,對于高手而言,他們不僅將 Vim 玩得很溜,而且還將它當作代碼開發(fā)的主要工具。為什么?因為 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 } } 現(xiàn)在,我在倒數(shù)第 3 行 items 后面插入一個花括號 { ,然后敲一下回車,我們就得到這樣的結果: package main import "fmt" func main() { x := true items := []string{"tv", "pc", "tablet"} if x { for _, i := range items { | (光標在這里了) } } }
當然 Auto Pairs 還提供了很多選項,我們可以在它的 Github 倉庫查看更多用法。但是,以上的這些基本用法就已經(jīng)可以節(jié)約我們很多時間了。
2、代碼塊注釋插件
作為一個合格的上古神器,Vim 沒辦法像那些 IDE 一樣去注釋代碼塊。但是有了 NERD Commenter 這個插件,我們就可以實現(xiàn)這樣的目標。
NERD Commenter 很智能,它可以自動識別代碼,并給出對應語言的注釋風格。最簡單的方法,我們可以在命令模式下通過敲 +空格 來快速注釋代碼塊。在這里,鍵默認是反斜杠 鍵,我們也可以進行自定義。
我們怎么選中多行呢?那就是要在 visual mode (可視化模式)下進行了,這是 Vim 的基本操作了。
還有一個很有用的特性是 Sexy Comment (性感模式),我們可以使用 +cs 來觸發(fā)。性感模式可以將代碼塊用很優(yōu)雅的方式來注釋,比如下面這種風格的注釋就是性感模式:
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 插件堪稱是一個大殺器,因為它可以將現(xiàn)有的代碼添加成對包圍符號。比如我們現(xiàn)在有這么一句代碼:
"Vim plugins are awesome !" 如果我們想把引號去掉,只需敲 ds" 即可: Vim plugins are awesome ! 如果我們想將雙引號改成單引號,我們可以敲 cs"': 'Vim plugins are awesome !' 想要換成其它符號也是一樣的道理。不僅如此,它還對 html 或 XML 標記語言支持非常好。比如有這么一句 HTML 語句: Vim plugins are awesome ! 現(xiàn)在我們想要加粗 awesome 這個詞,我們可以將光標放在這個單詞上,然后敲 ysiw ,它就會自動添加標記: Vim plugins are awesome ! Vim Surround 還可以以鋸齒的方式,在語句的上下方添加包圍符號,并將當前語句自動縮進。比如我們想在上面那條代碼添加標簽,我們可以敲 ySS : Vim plugins are awesome ! 同樣地,它的功能不僅于此,我們可以進它的 Github 倉庫查看更多強大的功能。
小結
以上 3 個 Vim 插件,熟練使用的話將為我們節(jié)約很多時間,而且用起來也非常順手,可以提高我們的效率。當然 Vim 社區(qū)里還有非常多大牛開發(fā)的很有用的插件,后續(xù)良許也會再推送一些好玩的插件,敬請期待!