【发布时间】:2013-04-25 20:48:17
【问题描述】:
我想扩展我的 JS 语法突出显示功能,突出显示我的程序中常用的某些功能。我正在使用janus 来保持我所有的插件井然有序。现在我有一个名为vim-chino 的文件,然后在那里我有一个syntax 文件夹和一个ftdetect 文件夹。在这两个文件中,我都有一个 chino.vim 文件。这是我的syntax/chino.vim 文件:
if !exists("main_syntax")
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
let main_syntax = 'javascript'
endif
syn match chinoKeywords "ChinoView"
hi def link chinoKeywords Function
let b:current_syntax = "javascript"
if main_syntax == 'javascript'
unlet main_syntax
endif
在我的ftdetect/chino.vim 我有:
function! s:DetectJS()
if getline(1) =~# '^#!.*/bin/env\s\+node\>'
setfiletype javascript
endif
endfunction
autocmd BufNewFile,BufRead * call s:DetectJS()
我希望它在任何 javascript 文件中突出显示 ChinoView。我觉得 JS 的语法突出显示要么覆盖它,要么它没有被读取。
编辑:如果我不得不猜测发生了什么事情,那就是当它查看 b:current_syntax 时,它已经有了语法,所以它退出了。
【问题讨论】:
-
您能否检查
:syn list chinoKeywords是否输出任何内容。如果不是,则意味着您的同步匹配没有生效。 -
是的,它说
No such highlight group name: chinoKeywords。我也尝试过syn keyword chinoKeywords ChinoView,但这也不起作用。 -
您可以尝试将
syn match chinoKeywords "ChinoView"和hi def link chinoKeywords Function添加到s:DetectJS()而不是您的syntax/chino.vim。 (在setfiletype javascript之后)
标签: javascript vim syntax-highlighting