Vim 是 Linux 下的經常使用文本編輯器,但也常常被稱爲是一個上古神器,由於它對於初學者而言至關不友好,也很差入門。 |
可是,對於高手而言,他們不只將 Vim 玩得很溜,並且還將它看成代碼開發的主要工具。爲何?由於 VS 等 IDE 比較龐大,運行起來比較慢,而 Vim 就至關輕量了,瞬間就能打開代碼並開始工做,這對於追求效率的高手而言天然是愛不釋手。html
可是,若是是官方版的 Vim ,依然是侷限性至關大,十分不方便。可是高手畢竟是高手,高手懂得使用插件。下面良許就介紹高手經常使用的 3 個很實用的插件。linux
一、括號自動補全插件程序員
這個插件叫 Auto Pairs ,它能夠自動補全配對的符號,好比:花括號、方括號、圓括號、引號等。這對於咱們程序員而言很是有用,由於在代碼裏咱們大量使用到了上述的幾種配對符號,若是能自動補全那將很大提升咱們的寫 bug 效率。vim
使用這個插件後,當咱們敲入一個符號時,會自動補全它的所匹配的另外一個符號。好比,咱們敲入 [ 時,它會自動補全 ] 。當咱們刪掉 [ 時,] 也自動被刪除了。編輯器
若是咱們開啓了自動縮進,那麼它不只會在合適的位置補全匹配的符號,還會將光標插入到合適的位置。好比下面這段 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 倉庫查看更多用法。可是,以上的這些基本用法就已經能夠節約咱們不少時間了。插件
二、代碼塊註釋插件htm
做爲一個合格的上古神器,Vim 沒辦法像那些 IDE 同樣去註釋代碼塊。可是有了 NERD Commenter 這個插件,咱們就能夠實現這樣的目標。開發
NERD Commenter 很智能,它能夠自動識別代碼,並給出對應語言的註釋風格。最簡單的方法,咱們能夠在命令模式下經過敲 +空格 來快速註釋代碼塊。在這裏,鍵默認是反斜槓 鍵,咱們也能夠進行自定義。get
咱們怎麼選中多行呢?那就是要在 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) * } * } */ }
三、添加包圍符號插件
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 社區裏還有很是多大牛開發的頗有用的插件,後續良許也會再推送一些好玩的插件,敬請期待!