使用這 10 個 Vim 插件,可讓你在寫代碼或運維時,感受更棒。python
我使用 Vim 文本編輯器大約 20 年了。有一段時間,我一直在定製個人 Vim 配置,但在只有在最近兩年我纔會使用插件。linux
最近,當我從新安裝系統時(就像我常常作的那樣),我以爲這是一次好的機會,我想找出多種編程語言環境下的最佳 Vim 插件,以及如何將這些插件和每種語言結合起來。git
有時,我會爲特定的語言和配置使用特定的插件(例如,我只在 Ansible 配置中安裝 Rocannon),在此不細講了。不過下面介紹的 10 個 Vim 插件都是個人最愛,不管使用哪一種編程語言,我幾乎都會使用它們。程序員
個人首選並非一個插件,可是它能夠替換相似於 Vundle 的插件,因此在此介紹。github
Volt 是一個不依存於 Vim 的 Vim 插件管理器。你能夠用它安裝插件,並建立名爲「profile」的插件組合。你可使用一個簡單的命令 volt profile set myprofile
啓用新的配置。這樣我能夠作到這樣的事情,如爲 Python 配置單獨啓用 indentpython 插件。Volt 還提供了一種針對每一個插件配置的簡單方法,這些配置會在「profile」之間共享,所以只須要安裝一次插件,就能夠在多個「profile」之間使用。編程
Volt 仍是相對較新且不夠完美(好比,無論你想要使用多少個「profile」,每一個插件只能有一個配置文件),但除此以外,我發現它很是方便、快速和簡單。vim
除了 Python,幾乎全部的主流編程語言都使用括號(小括號、方括號和大括號)。一般,它們會嵌套使用多對括號,所以很難搞清楚某個括號的開閉區間。我發現本身常常要數小括號,尤爲是在複雜的 Bash 腳本中,以確保無誤。瀏覽器
這時候就須要 vim-rainbow 插件!它爲每對括號設置不一樣的顏色,所以很容易識別出哪些括號是一對括號。它很是有用並且五彩斑斕。運維
Vim 有不少這種插件,例如 Powerline,它會在底部欄顯示你正在處理的文件、光標所在的文件位置以及文件類型等信息。這些插件各有利弊,在簡單比較後,我選擇了 lightline。它相對較小,便於安裝和擴展,而且不依賴於其餘工具或插件。編程語言
NERDTree 是一個很經典的插件。在大型項目中,你可能很難找到想要編輯的內容所在文件的確切名稱和路徑。使用快捷鍵(我使用的是 F7
,由於我在 .vimrc
中配置了這個快捷鍵),搜索窗會以垂直分屏的方式打開,就能夠輕鬆找到所需文件並打開它。對於大型項目,這是必備插件。對於那些常常忘記文件名的人也頗有用,好比我。
程序員們在寫代碼時,有時會遇到一些難以調試的問題,致使他們想要註釋或不執行某段代碼。這時候就須要 NERD Commenter 出場了。選擇代碼段,按 Leader 鍵 + cc
,代碼就會被註釋掉。(標準的 Vim Leader 鍵 是 /
字符。)按 Leader 鍵 + cn
,取消註釋。對於大多數文件類型,NERD Commenter 會自動使用正確的註釋符。例如,若是你正在編輯 BIND 區域文件,並將文件類型設置爲 BIND 區域文件,Vim 會正確地使用 ;
(分號)字符進行註釋。
我喜歡個人 Vim 主題配色。我也喜歡終端的主題色。我一直在 Vim 上使用 Solarized 配色,而且將個人終端、文件夾配色和 Vim 設爲一致。
可是,有時我會根據周邊環境、屏幕亮度以及是否須要分享投屏,來切換明暗模式。
顯然,你能夠選擇本身喜歡的任何配色方案,但我喜歡 Solarized
,由於它有明暗模式功能,它能夠簡單快捷地切換兩種模式。個人第二個選擇是 Monokai。Volt 插件管理器讓我能夠輕鬆地在二者之間切換,所以我在 Python 編程時,使用 Monokai;Bash 編程時,使用 Solarized。
我沒有給 Solarized 找相應的圖片,由於本文中的全部其餘圖片都使用了 Solarized 中的淺色或深色效果,能夠確認一下這些圖片。
當尋找一個文件時,有時你想要一個文件瀏覽器,有時你只想在鍵盤上敲打出與文件名模糊匹配的內容,對嗎?
fzf(全稱 「模糊查找器」)插件提供了這一功能。打出 :FZF
並輸入文件名內容。不斷縮短的列表將顯示出與你輸入的文件名內容相匹配的一些文件。我常用它,最近使用它的頻率估計比使用 NERDTree 還多。缺點是這個插件依賴於 fzf binary
,所以也必須安裝這個依賴包。它適用於 Fedora、Debian 和 Arch,據我所知並不在 EPEL 中。
有時,你須要搜索包含特定行或特定單詞的文件。我真的很喜歡使用 ack 插件,最好與 ag
結合使用,它倆的組合又被稱爲 「silver searcher」。這一組合的速度很是快,覆蓋了 grep
或 vimgrep
的絕大多數使用場景。缺點是你須要安裝 ack
或 ag
才能正常運行。好消息是 Fedora 和 EPEL7 均可以使用 ag
和 ack
。
大多數 IT 人員都使用 Git 和 Git 倉庫中的文件進行工做。gitgutter 插件在行號附近添加了一列,經過符號顯示該行的狀態爲:已更改(~
)、已添加(+
)或者已刪除(-
)。這有利於跟蹤你所作的更改,而且可使你專一於手頭的任務,例如編寫補丁來修復一個關鍵錯誤。
若是你在一個很大的文件中編寫代碼,會很容易忘記當前所在的位置,你可能須要上下滾動來查找某個功能。使用 Tag List 插件,只須要輸入 :Tlist
,就能垂直分屏顯示出包含變量、類型、類和函數的代碼,你能夠輕鬆跳轉到這些變量、類型、類和函數。這個功能對於多語言一樣適用,例如 Java、Python 以及任何可以使用 ctags
功能的文件類型。
以上介紹的 10 個 Vim 插件使我做爲系統管理員和兼職程序員的生活變得更輕鬆。你正在使用哪些 Vim 插件?請在評論中分享你最愛的插件。
via: opensource.com/article/19/…
做者:Maxim Burgerhout 選題:lujun9972 譯者:hello-wn 校對:wxy