FlexLM VIM语法突出显示

时间:2014-09-19 23:22:14

标签: vim vi

我试图让vim成为一个vim语法文件来突出显示FlexLM系统的文件。

它包含以空格分隔的关键字的行,我想根据它们所处的位置突出显示不同颜色的内容。

例如: FEATURE Infinisim infinism 2.4 31-may-2014 1 SUPERSEDE

以FEATURE一词开头的每一行都会有一个颜色的下一个字,另一个颜色的下一个字,等等,用空格分隔。

有办法做到这一点吗?

由于

1 个答案:

答案 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

如果您想扩展语法高亮 - 请将结果发回,因为包含选项文件等会很好。