是否可以为 vim 中的 'specific symbol' 提供用户定义的颜色?
Is it possible to give a user defined color to a 'specific symbol' in vim?
我正在 vim editor.Is 中处理一个 Grammar.txt 文件,我可以用一种方法为“/”赋予不同的颜色,这样它在视觉上更具吸引力我的眼睛。
我的很多工作都需要在纸上进行,以这种方式在屏幕上区分关键字会很有帮助。
这是我文件中的一个小片段
<Prog> ------ <functions><building>
<functions> ------ <function><functions>/ #
<function> ------ <funsig> <funcbody>
<funsig>------ <type> id (<params>)
<type> ------ int/float/distance/<floortype>/point/wall/doors/window/ratio
<params>------ <type>id<LF1>/#
<LF1>---------comma<params>/#
<funcbody>----- {<stats>}
<stats>----- <stat> <stats>/ #
<stat>----- <assignmentstats>/<returnstats>/<declarativestats>
假设您使用搜索突出显示 (:set hlsearch
),只需搜索 /
:
/\/
示例:
您可以使用 :match
命令:
:match {color-group} /\//
您可以使用不带任何参数的 :highlight
命令获取颜色组列表。因此,像这样:
:match Function /\//
您还可以通过调用 clearmatches
函数清除任何用户创建的匹配项。
:call clearmatches()
关于这些命令的更多帮助:
:help :match
:help :highlight
我想补充一下@EvergreenTree 的回答。
Vim 具有称为 匹配 的 突出显示 功能,它确实是这样工作的:
:match Error /pat/
第一个参数标记一个高亮组,您可以使用 :hi
查看其中的列表。第二个参数是正则表达式支持的搜索模式,需要用 /
分隔符包装。如果模式不清楚,您通常会通过发出传统搜索来测试模式。当模式看起来不错时,您可以通过键入 <C-r> /
在 :match
行中插入最后搜索到的模式。您可以通过不带参数单独调用 :match
来清除突出显示。
还有命令:2match
和:3match
可以同时高亮显示更多不同的模式。这些工作类似于 :match
.
如果您需要更多匹配(通过日志文件分析很容易发生),有一组 VimL 函数:
:call matchadd('Function', 'patt')
:call clearmatches()
这次模式不需要周围的 /
分隔符,但正则表达式语法保持不变。
我正在 vim editor.Is 中处理一个 Grammar.txt 文件,我可以用一种方法为“/”赋予不同的颜色,这样它在视觉上更具吸引力我的眼睛。
我的很多工作都需要在纸上进行,以这种方式在屏幕上区分关键字会很有帮助。
这是我文件中的一个小片段
<Prog> ------ <functions><building>
<functions> ------ <function><functions>/ #
<function> ------ <funsig> <funcbody>
<funsig>------ <type> id (<params>)
<type> ------ int/float/distance/<floortype>/point/wall/doors/window/ratio
<params>------ <type>id<LF1>/#
<LF1>---------comma<params>/#
<funcbody>----- {<stats>}
<stats>----- <stat> <stats>/ #
<stat>----- <assignmentstats>/<returnstats>/<declarativestats>
假设您使用搜索突出显示 (:set hlsearch
),只需搜索 /
:
/\/
示例:
您可以使用 :match
命令:
:match {color-group} /\//
您可以使用不带任何参数的 :highlight
命令获取颜色组列表。因此,像这样:
:match Function /\//
您还可以通过调用 clearmatches
函数清除任何用户创建的匹配项。
:call clearmatches()
关于这些命令的更多帮助:
:help :match
:help :highlight
我想补充一下@EvergreenTree 的回答。
Vim 具有称为 匹配 的 突出显示 功能,它确实是这样工作的:
:match Error /pat/
第一个参数标记一个高亮组,您可以使用 :hi
查看其中的列表。第二个参数是正则表达式支持的搜索模式,需要用 /
分隔符包装。如果模式不清楚,您通常会通过发出传统搜索来测试模式。当模式看起来不错时,您可以通过键入 <C-r> /
在 :match
行中插入最后搜索到的模式。您可以通过不带参数单独调用 :match
来清除突出显示。
还有命令:2match
和:3match
可以同时高亮显示更多不同的模式。这些工作类似于 :match
.
如果您需要更多匹配(通过日志文件分析很容易发生),有一组 VimL 函数:
:call matchadd('Function', 'patt')
:call clearmatches()
这次模式不需要周围的 /
分隔符,但正则表达式语法保持不变。