Linux中國

多語言編程必備的十大 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」。這一組合的速度非常快,覆蓋了 grepvimgrep 的絕大多數使用場景。缺點是你需要安裝 ackag 才能正常運行。好消息是 Fedora 和 EPEL7 都可以使用 agack

![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

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國