我试图让vim成为一个vim语法文件来突出显示FlexLM系统的文件。
它包含以空格分隔的关键字的行,我想根据它们所处的位置突出显示不同颜色的内容。
例如: FEATURE Infinisim infinism 2.4 31-may-2014 1 SUPERSEDE
以FEATURE一词开头的每一行都会有一个颜色的下一个字,另一个颜色的下一个字,等等,用空格分隔。
有办法做到这一点吗?
由于
答案 0 :(得分:1)
我有一个“noddy”vim文件,因为我想看到的只是基础知识。将以下内容放在〜/ .vim / syntax / flexlm.vim
中" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
" Syntax is case INsensitive
syn case ignore
" Main statements
"===============================================
syn keyword flexlmStatement SERVER DAEMON USE_SERVER
syn keyword flexlmStatement FEATURE INCREMENT skipwhite nextgroup=flexlmToken
syn region flexlmToken start="\S" end="\s" skipwhite nextgroup=flexlmDaemon
syn region flexlmDaemon start="\S" end="\s" skipwhite nextgroup=flexlmVer
syn region flexlmVer start="\S" end="\s" skipwhite nextgroup=flexlmDate
syn region flexlmDate start="\S" end="\s" skipwhite nextgroup=flexlmCount
syn region flexlmCount start="\S" end="\s" skipwhite nextgroup=flexlmStuff
syn region flexlmStuff start="\S" end="$"
syn region flexlmComment start=/#/ end=/$/
syn sync minlines=10
if version >= 508 || !exists("did_flexlm_syntax_inits")
if version < 508
let did_flexlm_syntax_inits = 1
command -nargs=+ HiLink hi link <args>
else
command -nargs=+ HiLink hi def link <args>
endif
HiLink flexlmComment Comment
HiLink flexlmStatement Keyword
HiLink flexlmToken Identifier
HiLink flexlmDaemon Tag
HiLink flexlmVer Label
HiLink flexlmCount Macro
HiLink flexlmStuff Type
delcommand HiLink
endif
let b:current_syntax = "flexlm"
然后,您可以将此设置为默认语法高亮显示,并在〜/ .vimrc
中添加以下内容au BufRead,BufNewFile *.dat set filetype=flexlm
显然,您可以根据文件扩展名使用该行,例如.lic等。您始终可以在vim中键入以下内容
:set syntax=flexlm
如果您想扩展语法高亮 - 请将结果发回,因为包含选项文件等会很好。