我希望.vm
扩展名为 vim 的文件能够:
- 将两个反引号之间的所有单词涂成红色,例如
`this`
, - 用黄色表示两美元之间的距离
$this is in yellow$
, #
并将该行与行末之间的所有单词涂成绿色。
答案1
语法脚本
~/.vim/syntax/vm.vim
创建一个包含以下内容的文件:
" Quit when a syntax file was already loaded.
if exists('b:current_syntax') | finish| endif
syntax match vmBackticks "`\zs[^`]\+\ze`"
syntax match vmDollars "\$\zs[^$]\+\ze\$"
syntax match vmComment "#.*$"
hi def link vmBackticks Identifier
hi def link vmDollars Statement
hi def link vmComment Comment
let b:current_syntax = 'vm'
如果您想在突出显示中包含反引号/美元,只需删除\zs
and \ze
。
这与三个语法元素相匹配,并提供默认颜色。通常不定义显式颜色,而是链接到默认突出显示组由您的配色方案定义。您可以通过 列出所有:hi
。要进行调整,请阅读:help :syntax
和:help usr_44.txt
,并查看 Vim 附带的语法脚本。
文件类型检测
到目前为止,您必须手动:set syntax=vm
激活。要自动执行此操作,您必须教 Vim 了解您的新文件类型。
~/.vim/ftdetect/vm.vim
创建一个包含以下内容的文件:
autocmd BufNewFile,BufRead *.vm setf vm
这假设可以通过文件名 (cp. ) 识别文件:help autocmd-patterns
。您还可以根据路径 (文件位置) 甚至内容进行检测。:help new-filetype
有详细信息。