mon*_*nny 29 vim syntax-highlighting
我有一些(log4j生成)日志文件要通过; 我知道他们的格式很好(我的意思是我已经有了可以使用的现成的正则表达式等).
我想在加载它时自动在VIM中突出显示它们(*.log).
日志文件条目如下所示:
YYYY-MM-DD HH:MM:ss,SSS [...] #LOG-LEVEL# [...] Message
其中#LOG-LEVEL#是标准'ERROR'之一,'INFO','DEBUG','FATAL'......和'YYYY-MM ......'表示毫秒级分辨率的日期/时间.
为了让我开始,在(例如)黄色背景中用蓝色文本突出显示日期字符串所需的步骤是什么 - 以及当文本显示为"错误"时,这应该具有带有白色文本的红色背景.
我已经尝试过这方面的一些教程,但是找不到一个很容易理解的,所以我在这里做了一些真正的基本步骤!
干杯
编辑:以下是我所做的总结,基于以下说明:
在.vim\syntax中创建了语法文件'log.vim'(请参阅下面的示例内容).
在.vim\ftdetect\log.vim中创建了一个文件,其中包含以下内容:
au BufRead,BufNewFile*.log set filetype = log
确保我的启动设置中包含以下内容:
文件类型的语法
DrA*_*rAl 30
定义语法项有三种方法(请参阅参考资料:help :syn-define):
有各种各样的论点会使事情变得更复杂(与区域内的匹配等有关),请参阅:help :syn-arguments讨论.
有一个优先权生效(见:help :syn-priority).
着色由高亮命令控制,并与语法命令分开.
一种简单的入门方法是使用匹配来检测日期,使用关键字来检测错误.然后使用高亮使颜色变为现实:
" This creates a keyword ERROR and puts it in the highlight group called logError
:syn keyword logError ERROR
" This creates a match on the date and puts in the highlight group called logDate.  The
" nextgroup and skipwhite makes vim look for logTime after the match
:syn match logDate /^\d\{4}-\d\{2}-\d\{2}/ nextgroup=logTime skipwhite
" This creates a match on the time (but only if it follows the date)
:syn match logTime /\d\{2}:\d\{2}:\d\{2},\d\{3}/
" Now make them appear:
" Link just links logError to the colouring for error
hi link logError Error
" Def means default colour - colourschemes can override
hi def logDate guibg=yellow guifg=blue
hi def logTime guibg=green guifg=white
在〜/ .vim/syntax/log.vim中填写所有内容并确保文件类型设置正确(请参阅参考资料:help filetype.txt) - 然后应自动加载.
希望这应该给你一些东西.有一个(非常渐进的)阅读各个部分:help syntax.txt和:help usr_44.txt更多信息.
Myk*_*yev 10
你可以从
syn match group1 /^\d\+-\d\+-\d\+/ nextgroup=group2 skipwhite
syn match group2 /....../ nextgroup=group3 contained skipwhite
syn match group3 /....../ nextgroup=group4 contained skipwhite
hi link group1 Comment
hi link group2 Conditional
hi link group3 Identifier
然后继续试验