Vim 使用进阶:自定义高亮分组

highlight

在 Vim 中,咱们能够自定义一些颜色分组,并将其应用于某些符合特定模式的字符串中,这些分组就成为高亮分组(highlight group)。vim

咱们能够直接在命令行模式中输入 highlight 命令,后面不跟上任何参数,这样就能查看当前 Vim 中全部的高亮分组信息。字体

:highlight复制代码

这里定义一个名为 myColor 的高亮分组,将背景颜色设置为紫色:ui

:highlight myColor ctermbg=purple guibg=purple复制代码

咱们使用 highlight 命令来定义高亮分组,后面跟上分组名和颜色模式。其中,ctermbg 表示命令行中的背景色,guibg 表示 GUI 界面中的背景色。相似的还有 ctermfgguifg,分别表示命令行前景色和 GUI 界面前景色。spa

还能够直接为已有的高亮分组起别名,只须要将新的分组链接到已有的分组便可。命令行

highlight link {newgroup} {oldgroup}复制代码

定义完高亮分组后,咱们能够将它应用到文本中。接下来,我给你们介绍几种设置高亮的方法。code

match

match 命令用于在当前窗口中设置高亮模式,格式以下:字符串

:match {group} /pattern/复制代码

例如,咱们将全部的数字都用 myColor 分组进行高亮显示:get

:match myColor /\v\d+/复制代码

match 命令的特色是同一时刻只能使用一种高亮模式,当设置新的高亮模式时,旧的高亮模式会被取消。string

若是要同时高亮多个模式,可使用 2match3match 命令,它们的语法和功能与 match 相同,但每一个命令每次只能设置一种高亮模式。class

: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…

相关文章
相关标签/搜索