前言
Linux下的Vim代碼編輯器簡單好用,但是本身對編程語言的關(guān)鍵字高亮及配色需要用戶自己設(shè)置。下面這篇文章主要就給大家介紹了關(guān)于Vim自定義高亮分組及實用技巧的相關(guān)內(nèi)容,需要的朋友們下面來一起看看吧。
highlight
在 Vim 中,我們可以自定義一些顏色分組,并將其應(yīng)用于某些符合特定模式的字符串中,這些分組就成為高亮分組(highlight group)。
我們可以直接在命令行模式中輸入 highlight 命令,后面不跟上任何參數(shù),這樣就能查看當(dāng)前 Vim 中所有的高亮分組信息。
1
|
:highlight |
這里定義一個名為 myColor 的高亮分組,將背景顏色設(shè)置為紫色:
1
|
:highlight myColor ctermbg=purple guibg=purple |
我們使用 highlight 命令來定義高亮分組,后面跟上分組名和顏色模式。其中,ctermbg 表示命令行中的背景色,guibg 表示 GUI 界面中的背景色。類似的還有 ctermfg、guifg,分別表示命令行前景色和 GUI 界面前景色。
還可以直接為已有的高亮分組起別名,只需要將新的分組連接到已有的分組即可。
1
|
highlight link {newgroup} {oldgroup} |
定義完高亮分組后,我們可以將它應(yīng)用到文本中。接下來,我給大家介紹幾種設(shè)置高亮的方法。
match
match 命令用于在當(dāng)前窗口中設(shè)置高亮模式,格式如下:
1
|
:match {group} /pattern/ |
例如,我們將所有的數(shù)字都用 myColor 分組進(jìn)行高亮顯示:
1
|
:match myColor /\ v \d+/ |
match 命令的特點是同一時刻只能使用一種高亮模式,當(dāng)設(shè)置新的高亮模式時,舊的高亮模式會被取消。
如果要同時高亮多個模式,可以使用 2match 和 3match 命令,它們的語法和功能與 match 相同,但每個命令每次只能設(shè)置一種高亮模式。
1
|
:2match myColor /anotherPattern/ |
取消高亮
1
2
3
|
:match none :2match none :3match none |
syntax match
syntax match 命令用于設(shè)置語法高亮,格式如下:
1
|
:syntax match {group} pattern |
例如,我們將引號包圍起來的內(nèi)容使用 myColor 分組高亮顯示:
1
|
:syntax match myColor /\ v "\w+" / |
取消高亮
1
|
:syntax clear |
syntax keyword
syntax keyword 命令用于設(shè)置關(guān)鍵字高亮,格式如下:
1
|
:syntax keyword {group} word1 word2 ... |
例如,我們把 hello 和 world 兩個單詞作為關(guān)鍵字進(jìn)行高亮:
1
|
:syntax keyword myColor hello world |
取消高亮
1
|
:syntax clear |
實用技巧
搜索結(jié)果高亮
Search 是匹配文本時默認(rèn)使用的高亮分組,我們可以自定義該分組的顏色,下面的代碼將使搜索結(jié)果以綠色的背景展示出來。
1
|
:highlight Search ctermbg=green guibg=green |
超長文本高亮
編寫代碼時,常常會遇到一行中代碼過長的情況,我們可以通過設(shè)置高亮實時檢測是否有超長的代碼。
1
2
|
:highlight rightMargin term=bold ctermfg=blue guifg=blue :match rightMargin /.\%>72v/ |
上面的命令會將一行中超過72個字的部分用藍(lán)色字體高亮顯示。
行尾空格高亮
我們經(jīng)常會遇到行尾有多余空格的情況,但正常情況下,很難發(fā)現(xiàn)這些多余的空格。使用高亮來顯示這些空格再合適不過了。
1
2
|
:highlight extraSpace ctermbg=red guibg=red :match extraSpace /\ v \s+$/ |
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。
原文鏈接:http://www.codebelief.com/article/2017/05/vim-advanced-usage-custom-highlight-groups/