多語(yǔ)言編程必備的十大Vim插件
使用這 10 個(gè) Vim 插件,可以讓你在寫代碼或運(yùn)維時(shí),感覺(jué)更棒。
我使用 Vim 文本編輯器大約 20 年了。有一段時(shí)間,我一直在定制我的 Vim 配置,但在只有在最近兩年我才會(huì)使用插件。
最近,當(dāng)我重新安裝系統(tǒng)時(shí)(就像我經(jīng)常做的那樣),我覺(jué)得這是一次好的機(jī)會(huì),我想找出多種編程語(yǔ)言環(huán)境下的最佳 Vim 插件,以及如何將這些插件和每種語(yǔ)言結(jié)合起來(lái)。
有時(shí),我會(huì)為特定的語(yǔ)言和配置使用特定的插件(例如,我只在 Ansible 配置中安裝 Rocannon),在此不細(xì)講了。不過(guò)下面介紹的 10 個(gè) Vim 插件都是我的最愛(ài),無(wú)論使用哪種編程語(yǔ)言,我?guī)缀醵紩?huì)使用它們。
1、Volt
我的首選并不是一個(gè)插件,但是它可以替換類似于 Vundle 的插件,所以在此介紹。
Volt 是一個(gè)不依存于 Vim 的 Vim 插件管理器。你可以用它安裝插件,并創(chuàng)建名為“profile”的插件組合。你可以使用一個(gè)簡(jiǎn)單的命令 volt profile set myprofile
啟用新的配置。這樣我可以做到這樣的事情,如為 Python 配置單獨(dú)啟用 indentpython 插件。Volt 還提供了一種針對(duì)每個(gè)插件配置的簡(jiǎn)單方法,這些配置會(huì)在“profile”之間共享,因此只需要安裝一次插件,就可以在多個(gè)“profile”之間使用。
Volt 還是相對(duì)較新且不夠完美(比如,不管你想要使用多少個(gè)“profile”,每個(gè)插件只能有一個(gè)配置文件),但除此之外,我發(fā)現(xiàn)它非常方便、快速和簡(jiǎn)單。
Volt plugin
2、Vim-Rainbow
除了 Python,幾乎所有的主流編程語(yǔ)言都使用括號(hào)(小括號(hào)、方括號(hào)和大括號(hào))。通常,它們會(huì)嵌套使用多對(duì)括號(hào),因此很難搞清楚某個(gè)括號(hào)的開(kāi)閉區(qū)間。我發(fā)現(xiàn)自己經(jīng)常要數(shù)小括號(hào),尤其是在復(fù)雜的 Bash 腳本中,以確保無(wú)誤。
這時(shí)候就需要 vim-rainbow 插件!它為每對(duì)括號(hào)設(shè)置不同的顏色,因此很容易識(shí)別出哪些括號(hào)是一對(duì)括號(hào)。它非常有用而且五彩斑斕。
vim-rainbow plugin
3、lightline
Vim 有很多這種插件,例如 Powerline,它會(huì)在底部欄顯示你正在處理的文件、光標(biāo)所在的文件位置以及文件類型等信息。這些插件各有利弊,在簡(jiǎn)單比較后,我選擇了 lightline。它相對(duì)較小,便于安裝和擴(kuò)展,并且不依賴于其他工具或插件。
Lightline plugin
4、NERDTree
NERDTree 是一個(gè)很經(jīng)典的插件。在大型項(xiàng)目中,你可能很難找到想要編輯的內(nèi)容所在文件的確切名稱和路徑。使用快捷鍵(我使用的是 F7
,因?yàn)槲以?.vimrc
中配置了這個(gè)快捷鍵),搜索窗會(huì)以垂直分屏的方式打開(kāi),就可以輕松找到所需文件并打開(kāi)它。對(duì)于大型項(xiàng)目,這是必備插件。對(duì)于那些經(jīng)常忘記文件名的人也很有用,比如我。
NERDTree vim plugin
5、NERD Commenter
程序員們?cè)趯懘a時(shí),有時(shí)會(huì)遇到一些難以調(diào)試的問(wèn)題,導(dǎo)致他們想要注釋或不執(zhí)行某段代碼。這時(shí)候就需要 NERD Commenter 出場(chǎng)了。選擇代碼段,按 Leader 鍵 + cc
,代碼就會(huì)被注釋掉。(標(biāo)準(zhǔn)的 Vim Leader 鍵 是 /
字符。)按 Leader 鍵 + cn
,取消注釋。對(duì)于大多數(shù)文件類型,NERD Commenter 會(huì)自動(dòng)使用正確的注釋符。例如,如果你正在編輯 BIND 區(qū)域文件,并將文件類型設(shè)置為 BIND 區(qū)域文件,Vim 會(huì)正確地使用 ;
(分號(hào))字符進(jìn)行注釋。
NERD Commenter
6、Solarized
我喜歡我的 Vim 主題配色。我也喜歡終端的主題色。我一直在 Vim 上使用 Solarized 配色,并且將我的終端、文件夾配色和 Vim 設(shè)為一致。
但是,有時(shí)我會(huì)根據(jù)周邊環(huán)境、屏幕亮度以及是否需要分享投屏,來(lái)切換明暗模式。
顯然,你可以選擇自己喜歡的任何配色方案,但我喜歡 Solarized
,因?yàn)樗忻靼的J焦δ?,它可以?jiǎn)單快捷地切換兩種模式。我的第二個(gè)選擇是 Monokai。Volt 插件管理器讓我可以輕松地在兩者之間切換,因此我在 Python 編程時(shí),使用 Monokai;Bash 編程時(shí),使用 Solarized。
我沒(méi)有給 Solarized 找相應(yīng)的圖片,因?yàn)楸疚闹械乃衅渌麍D片都使用了 Solarized 中的淺色或深色效果,可以確認(rèn)一下這些圖片。
7、fzf
當(dāng)尋找一個(gè)文件時(shí),有時(shí)你想要一個(gè)文件瀏覽器,有時(shí)你只想在鍵盤上敲打出與文件名模糊匹配的內(nèi)容,對(duì)嗎?
fzf(全稱 “模糊查找器”)插件提供了這一功能。打出 :FZF
并輸入文件名內(nèi)容。不斷縮短的列表將顯示出與你輸入的文件名內(nèi)容相匹配的一些文件。我經(jīng)常使用它,最近使用它的頻率估計(jì)比使用 NERDTree 還多。缺點(diǎn)是這個(gè)插件依賴于 fzf binary
,因此也必須安裝這個(gè)依賴包。它適用于 Fedora、Debian 和 Arch,據(jù)我所知并不在 EPEL 中。
fzf Vim plugin
8、ack
有時(shí),你需要搜索包含特定行或特定單詞的文件。我真的很喜歡使用 ack 插件,最好與 ag
結(jié)合使用,它倆的組合又被稱為 “silver searcher”。這一組合的速度非常快,覆蓋了 grep
或 vimgrep
的絕大多數(shù)使用場(chǎng)景。缺點(diǎn)是你需要安裝 ack
或 ag
才能正常運(yùn)行。好消息是 Fedora 和 EPEL7 都可以使用 ag
和 ack
。
ack vim plugin
9、gitgutter
大多數(shù) IT 人員都使用 Git 和 Git 倉(cāng)庫(kù)中的文件進(jìn)行工作。gitgutter 插件在行號(hào)附近添加了一列,通過(guò)符號(hào)顯示該行的狀態(tài)為:已更改(~
)、已添加(+
)或者已刪除(-
)。這有利于跟蹤你所做的更改,并且可以使你專注于手頭的任務(wù),例如編寫補(bǔ)丁來(lái)修復(fù)一個(gè)關(guān)鍵錯(cuò)誤。
gitgutter vim plugin
10、Tag List
如果你在一個(gè)很大的文件中編寫代碼,會(huì)很容易忘記當(dāng)前所在的位置,你可能需要上下滾動(dòng)來(lái)查找某個(gè)功能。使用 Tag List 插件,只需要輸入 :Tlist
,就能垂直分屏顯示出包含變量、類型、類和函數(shù)的代碼,你可以輕松跳轉(zhuǎn)到這些變量、類型、類和函數(shù)。這個(gè)功能對(duì)于多語(yǔ)言同樣適用,例如 Java、Python 以及任何能夠使用 ctags
功能的文件類型。
Tag List vim plugin
以上介紹的 10 個(gè) Vim 插件使我作為系統(tǒng)管理員和兼職程序員的生活變得更輕松。你正在使用哪些 Vim 插件?請(qǐng)?jiān)谠u(píng)論中分享你最愛(ài)的插件。