繁体   English   中英

扩展Vim中的Javascript语法突出显示

[英]Extending Javascript syntax highlighting in vim

我想用突出显示程序中常用的某些功能来扩展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它已经有了语法,因此退出了。

您的ftplugin/chino.vim将语法设置为javascript ,但是您定义的其他突出显示是针对新的chino语法的。 那不适合在一起。

如果只想在所有 Javascript中突出显示一个额外的关键字,则可以进行默认的Vim检测并将这些行添加到after/syntax/javascript.vim

syn match chinoKeywords "ChinoView"
hi def link chinoKeywords Function

但是,如果您想根据文件的shebang行定义不同的chino文件类型,则需要在ftplugin/chino.vim :setfiletype chino ,然后在您的syntax/chino.vim包含默认的javascript语法(在初始在设置b:current_syntax之前进行检查):

runtime! syntax/javascript.vim syntax/javascript/*.vim

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM