誰說 Vim 不好用?送你一個五彩斑斕的編輯器!
相信大家在使用各種各樣強大的 IDE 寫代碼時都會注意到,代碼中各種類型的關鍵字會用獨特的顏色標記出來,然后形成一套語法高亮規則。這樣不僅美觀,而且方便代碼的閱讀。
而在上古神器 Vim 中,我們通常看到的是黑底白字,沒有任何其它顏色。難道我們的 Vim 就這么枯燥乏味嗎?當然不是,Vim 隱藏了非常多非常實用的功能與技巧,不是老司機根本就不知道。下面來詳細介紹。
在開始之前,我們要先檢查一下系統中是否安裝了 Vim 編輯器。一般來說 Ubuntu 系統是默認自帶的,沒有的小伙伴請先自行安裝。
- $ sudo apt-get install vim
然后我們運行以下命令來查看安裝好的 Vim 編輯器的版本。
- $ vim -version

接下來,我們就可以為 Vim 編輯器添加配色方案。為了能看出效果,我們準備了一個名為 login.sh 的 bash 文件,它的內容如下:
login.sh
- !/bin/bash
- echo "Type your username"
- read username
- echo "Type your password"
- read password
- if [[ ( $username == "admin" && $password == "secret" ) ]]; then
- echo "Authorized user"
- else
- echo "Unauthorized user"
- fi
運行以下命令使用 Vim 編輯器打開該文件:
- $ vim login.sh
啟用/禁用語法高亮顯示
有些發行版的 Vim 編輯器已經幫你默認啟用語法高亮,而有些發行版卻沒有。如果沒有默認打開語法高亮,那么我們就需要自行打開。
打開的方法其實也很簡單。在 Vim 編輯器中打開 login.sh 文件后,按 ESC 鍵并鍵入 :syntax on ,語法高亮顯示就打開了,非常方便。

同樣,關閉語法高亮也很簡單,只需按 ESC 鍵并鍵入 :syntax off 即可。

永久啟用或禁用語法高亮顯示
剛剛那種打開語法高亮的方法只是暫時性的,一旦當前文件關閉,下次打開文件就需要重新打開語法高亮。
如果想要永久啟用或禁用語法高亮顯示,就需要修改 .vimrc 文件。首先,我們使用 Vim 打開 .vimrc 文件。
- $ sudo vim ~ / .vimrc

然后,在打開的文件中添加一句 syntax on 命令,代表永久啟用語法高亮顯示。最后再輸入 :wq 保存并關閉文件。

如果想要永久禁用語法高亮,則添加 syntax off 命令即可。

改變配色方案
在默認情況下,打開語法高亮后 Vim 為你應用了一套默認的配色方案,而實際上 Vim 還有很多套配色方案可供我們使用,我們可以自行去修改。
安裝 Vim 后,顏色方案文件位于 /usr/share/vim/vim*/colors/ 中。我們可以運行以下命令來查看 Vim 配色方案文件的列表。
- $ ls -l /usr/share/vim/vim*/colors/

可以看出 Vim 為我們提供了非常多的配色方案,我們可以根據自己的需要自由選擇。假設,我們有一個 hello.html 的 html 文件,我們想要將它的的配色方案改為 morning 類型。
hello.html
- <html>
- <head>
- <title> Welcome </title>
- </head>
- <body>
- <p> Hello Everybody, Welcome to our site </p>
- </body>
- </html>
我們首先運行以下命令在 Vim 中打開這個 html 文件。
- $ vim hello.html
按 ESC 并鍵入 :colorscheme morning ,這樣我們就更改了文件當前的顏色方案。
應用新顏色方案后,效果如下圖顯示。但這種更改依然是暫時的,關閉編輯器后配色方案將被重置。

如果想要永久設置特定的配色方案及背景,那么我們需要再次打開 .vimrc 文件并添加以下命令文本。下面配置的是夜晚配色方案,會將背景顏色設置為深色。
- color evening
- set background=dark
之后再重新打開剛才的文件,效果就會變成如下圖所示。

根據語言選擇配色方案
Vim 編輯器支持多種語言的語法,例如 PHP,Perl,Python,awk 等。根據不同語言,它會應用一套相應語言的配色方案。
比如現在有一個名為 average.py 的 Python 文件,我們用 Vim 編輯器打開它。通過 Vim 編輯器的默認配色方案,文件的顯示效果如下圖所示。
這是一個 Python 文件,但如果我們想以 Perl 的語法風格來顯示,要怎么操作?我們只需輸入 :set syntax=perl ,按 Enter 鍵就可以了,效果如下圖所示。
- :set syntax=perl
自定義配色方案
前面所介紹的那些配色方案,其實都是系統自帶的,我們只是選擇一下而已。如果我們想要個性化一點,自定義一套配色方案,要怎么操作?強大的 Vim 也是支持你這個需求的!
一般而言,語法需要高亮的無非就是 *變量、注釋、常量 *之類的,Vim 編輯器支持的語法高亮組有如下 9 個:
- Group Name Description Identifier 變量 Statement 關鍵字,例如 if,else,do,while等
- Comment 注釋 Type 數據類型,如 int、double、string等 PreProc 預處理器語句,比如 #include Constant 常量,如數字、帶引號的字符串、真/假等
- Special 特殊符號,如“\t”、“\n”等 Underlined 帶下劃線的文本 Error 錯誤
下面舉個例子。在 Vim 編輯器中打開名為 leap.py 的 Python 腳本文件。默認情況下,該文件的語法高亮顯示如下圖所示。
如果我們想把關鍵字變為紅色,該怎么操作?只需輸入 :hi Statement ctermfg=red 即可。這時,if 和 else 的顏色將變為紅色。
- :hi Statement ctermfg=red

當然,對于注釋、常量、數據類型,我們也可以使用同樣的方法來改變顏色。這樣一來,你就會形成一套自己的配色方案,感覺是不是很酸爽?
本文授權轉載自公眾號「良許Linux」。良許,世界500強外企Linux開發工程師,公眾號里分享大量Linux干貨,歡迎關注!