我正在尝试使 vim 成为 vim 语法文件以突出显示 FlexLM 系统的文件。
它包含带有以空格分隔的关键字的行,我想根据它们所在的位置突出显示不同的颜色。
例如: FEATURE Infinisim infinism 2.4 31-may-2014 1 SUPERSEDE
以单词 FEATURE 开头的每一行将具有一种颜色的下一个单词,下一个是另一种颜色,依此类推,以空格分隔。
有没有办法做到这一点?
谢谢
我有一个“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
如果您想扩展语法突出显示 - 请回发结果,因为包含选项文件等会很好。