Vim 使用進階:自定義高亮分組

Wray_Zheng發表於2017-06-02

highlight

在 Vim 中,我們可以自定義一些顏色分組,並將其應用於某些符合特定模式的字串中,這些分組就成為高亮分組(highlight group)。

我們可以直接在命令列模式中輸入 highlight 命令,後面不跟上任何引數,這樣就能檢視當前 Vim 中所有的高亮分組資訊。

:highlight複製程式碼

這裡定義一個名為 myColor 的高亮分組,將背景顏色設定為紫色:

:highlight myColor ctermbg=purple guibg=purple複製程式碼

我們使用 highlight 命令來定義高亮分組,後面跟上分組名和顏色模式。其中,ctermbg 表示命令列中的背景色,guibg 表示 GUI 介面中的背景色。類似的還有 ctermfgguifg,分別表示命令列前景色和 GUI 介面前景色。

還可以直接為已有的高亮分組起別名,只需要將新的分組連線到已有的分組即可。

highlight link {newgroup} {oldgroup}複製程式碼

定義完高亮分組後,我們可以將它應用到文字中。接下來,我給大家介紹幾種設定高亮的方法。

match

match 命令用於在當前視窗中設定高亮模式,格式如下:

:match {group} /pattern/複製程式碼

例如,我們將所有的數字都用 myColor 分組進行高亮顯示:

:match myColor /\v\d+/複製程式碼

match 命令的特點是同一時刻只能使用一種高亮模式,當設定新的高亮模式時,舊的高亮模式會被取消。

如果要同時高亮多個模式,可以使用 2match3match 命令,它們的語法和功能與 match 相同,但每個命令每次只能設定一種高亮模式。

:2match myColor /anotherPattern/複製程式碼

取消高亮

:match none
:2match none
:3match none複製程式碼

syntax match

syntax match 命令用於設定語法高亮,格式如下:

:syntax match {group} pattern複製程式碼

例如,我們將引號包圍起來的內容使用 myColor 分組高亮顯示:

:syntax match myColor /\v"\w+"/複製程式碼

取消高亮

:syntax clear複製程式碼

syntax keyword

syntax keyword 命令用於設定關鍵字高亮,格式如下:

:syntax keyword {group} word1 word2 ...複製程式碼

例如,我們把 hello 和 world 兩個單詞作為關鍵字進行高亮:

:syntax keyword myColor hello world複製程式碼

取消高亮

:syntax clear複製程式碼

實用技巧

搜尋結果高亮

Search 是匹配文字時預設使用的高亮分組,我們可以自定義該分組的顏色,下面的程式碼將使搜尋結果以綠色的背景展示出來。

:highlight Search ctermbg=green guibg=green複製程式碼

超長文字高亮

編寫程式碼時,常常會遇到一行中程式碼過長的情況,我們可以通過設定高亮實時檢測是否有超長的程式碼。

:highlight rightMargin term=bold ctermfg=blue guifg=blue
:match rightMargin /.\%>72v/複製程式碼

上面的命令會將一行中超過72個字的部分用藍色字型高亮顯示。

行尾空格高亮

我們經常會遇到行尾有多餘空格的情況,但正常情況下,很難發現這些多餘的空格。使用高亮來顯示這些空格再合適不過了。

:highlight extraSpace ctermbg=red guibg=red
:match extraSpace /\v\s+$/複製程式碼

版權宣告

作者:Wray Zheng
原文連結: www.codebelief.com/article/201…

相關文章