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