Vim 是 linux 下的常用文本編輯器,但也經(jīng)常被稱為是一個(gè)上古神器,因?yàn)樗鼘?duì)于初學(xué)者而言相當(dāng)不友好,也不好入門。
但是,對(duì)于高手而言,他們不僅將 Vim 玩得很溜,而且還將它當(dāng)作代碼開發(fā)的主要工具。為什么?因?yàn)?VS 等 IDE 比較龐大,運(yùn)行起來比較慢,而 Vim 就相當(dāng)輕量了,瞬間就能打開代碼并開始工作,這對(duì)于追求效率的高手而言自然是愛不釋手。
但是,如果是官方版的 Vim ,依然是局限性相當(dāng)大,十分不方便。但是高手畢竟是高手,高手懂得使用插件。下面良許就介紹高手常用的 3 個(gè)很實(shí)用的插件。
1、括號(hào)自動(dòng)補(bǔ)全插件
這個(gè)插件叫 Auto Pairs ,它可以自動(dòng)補(bǔ)全配對(duì)的符號(hào),比如:花括號(hào)、方括號(hào)、圓括號(hào)、引號(hào)等。這對(duì)于我們程序員而言非常有用,因?yàn)樵诖a里我們大量使用到了上述的幾種配對(duì)符號(hào),如果能自動(dòng)補(bǔ)全那將很大提高我們的寫 bug 效率。
使用這個(gè)插件后,當(dāng)我們敲入一個(gè)符號(hào)時(shí),會(huì)自動(dòng)補(bǔ)全它的所匹配的另一個(gè)符號(hào)。比如,我們敲入 [ 時(shí),它會(huì)自動(dòng)補(bǔ)全 ] 。當(dāng)我們刪掉 [ 時(shí),] 也自動(dòng)被刪除了。
如果我們開啟了自動(dòng)縮進(jìn),那么它不僅會(huì)在合適的位置補(bǔ)全匹配的符號(hào),還會(huì)將光標(biāo)插入到合適的位置。比如下面這段 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 后面插入一個(gè)花括號(hào) { ,然后敲一下回車,我們就得到這樣的結(jié)果:
package main
import "fmt"
func main() {
x := true
items := []string{"tv", "pc", "tablet"}
if x {
for _, i := range items {
| (光標(biāo)在這里了)
}
}
}
當(dāng)然 Auto Pairs 還提供了很多選項(xiàng),我們可以在它的 Github 倉庫查看更多用法。但是,以上的這些基本用法就已經(jīng)可以節(jié)約我們很多時(shí)間了。
2、代碼塊注釋插件
作為一個(gè)合格的上古神器,Vim 沒辦法像那些 IDE 一樣去注釋代碼塊。但是有了 NERD Commenter 這個(gè)插件,我們就可以實(shí)現(xiàn)這樣的目標(biāo)。
NERD Commenter 很智能,它可以自動(dòng)識(shí)別代碼,并給出對(duì)應(yīng)語言的注釋風(fēng)格。最簡(jiǎn)單的方法,我們可以在命令模式下通過敲 +空格 來快速注釋代碼塊。在這里,鍵默認(rèn)是反斜杠 鍵,我們也可以進(jìn)行自定義。
我們?cè)趺催x中多行呢?那就是要在 visual mode (可視化模式)下進(jìn)行了,這是 Vim 的基本操作了。
還有一個(gè)很有用的特性是 Sexy Comment (性感模式),我們可以使用 +cs 來觸發(fā)。性感模式可以將代碼塊用很優(yōu)雅的方式來注釋,比如下面這種風(fēng)格的注釋就是性感模式:
package main
import "fmt"
func main() {
/*
* x := true
* items := []string{"tv", "pc", "tablet"}
*
* if x {
* for _, i := range items {
* fmt.Println(i)
* }
* }
*/
}
3、添加包圍符號(hào)插件
Vim Surround 插件堪稱是一個(gè)大殺器,因?yàn)樗梢詫F(xiàn)有的代碼添加成對(duì)包圍符號(hào)。比如我們現(xiàn)在有這么一句代碼:
"Vim plugins are awesome !" 如果我們想把引號(hào)去掉,只需敲 ds" 即可: Vim plugins are awesome ! 如果我們想將雙引號(hào)改成單引號(hào),我們可以敲 cs"': 'Vim plugins are awesome !' 想要換成其它符號(hào)也是一樣的道理。不僅如此,它還對(duì) html 或 XML 標(biāo)記語言支持非常好。比如有這么一句 HTML 語句: Vim plugins are awesome ! 現(xiàn)在我們想要加粗 awesome 這個(gè)詞,我們可以將光標(biāo)放在這個(gè)單詞上,然后敲 ysiw ,它就會(huì)自動(dòng)添加標(biāo)記: Vim plugins are awesome ! Vim Surround 還可以以鋸齒的方式,在語句的上下方添加包圍符號(hào),并將當(dāng)前語句自動(dòng)縮進(jìn)。比如我們想在上面那條代碼添加標(biāo)簽,我們可以敲 ySS : Vim plugins are awesome ! 同樣地,它的功能不僅于此,我們可以進(jìn)它的 Github 倉庫查看更多強(qiáng)大的功能。
小結(jié)
以上 3 個(gè) Vim 插件,熟練使用的話將為我們節(jié)約很多時(shí)間,而且用起來也非常順手,可以提高我們的效率。當(dāng)然 Vim 社區(qū)里還有非常多大牛開發(fā)的很有用的插件,后續(xù)良許也會(huì)再推送一些好玩的插件,敬請(qǐng)期待!






