gpt4 book ai didi

vim - 如何在 vim 中语法突出显示多个空格分隔的字段?

转载 作者:行者123 更新时间:2023-12-02 09:14:59 30 4
gpt4 key购买 nike

我的跟踪格式具有以空格分隔的字段,但它们之间的空格数量未知,例如:

  0.0430   22.0  83012/84348 mt-client * | |        clearing session cache
0.0430 0.0 83012/84348 mt-client * | | moving 1 sessions into watched list
0.0430 0.0 83012/84348 mt-client * | | session 8 added to watched list
0.0430 0.0 83012/84348 conncache - | --27.0 ConnectionCache::ResetEverything

我想根据字段编号在 vim 中进行语法高亮 - 例如,awk 会调用 $1、$2 等。

最佳答案

以下模式将匹配第一个非空白组,awk 称之为 $1:

:syn match Keyword /\v(^\s*(\S+\s+){0})@<=\S+/

您可以将 {0} 更改为 {1} 以匹配第二组,并将 {i-1} 更改为 $i 组。

在突出显示之前,您可以自定义自己的突出显示组。

例如:

:highlight Group0 guifg=blue
:highlight Group1 ctermfg=black ctermbg=white

第一个用于 gui 模式,第二个用于 cli 模式。或者您可以同时设置两者。


将突出显示规则保存到文件

您可以将自定义规则保存到文件中,以便将来轻松突出显示此类字符串。

将以下内容保存到 my_highlight.vim

"customize highlight groups
highlight Group0 guifg=blue
highlight Group1 guifg=green
highlight Group2 guifg=yellow
highlight Group3 guifg=orange
highlight Group4 guifg=purple

"highlight groups
syn match Group0 /\v(^\s*(\S+\s+){0})@<=\S+/
syn match Group1 /\v(^\s*(\S+\s+){1})@<=\S+/
syn match Group2 /\v(^\s*(\S+\s+){2})@<=\S+/
syn match Group3 /\v(^\s*(\S+\s+){3})@<=\S+/
syn match Group4 /\v(^\s*(\S+\s+){4})@<=\S+/

当需要突出显示时,只需执行以下命令:

:source my_highlight.vim

关于vim - 如何在 vim 中语法突出显示多个空格分隔的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48013018/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com