Extending Javascript syntax highlighting in vim(扩展Vim中的Java脚本语法突出显示)
问题描述
我想通过突出显示程序中常用的某些函数来扩展我的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/envs+node>'
setfiletype javascript
endif
endfunction
autocmd BufNewFile,BufRead * call s:DetectJS()
我希望它在任何Java脚本文件中突出显示ChinoView
。我觉得JS的语法突出显示要么覆盖了它,要么它没有被读取。
编辑:如果我必须猜测发生了什么事情,那就是当它查看b:current_syntax
时,它已经有了语法,所以它退出了。
推荐答案
您的ftplugin/chino.vim
将语法设置为javascript
,但您定义的额外突出显示是用于新的chino语法。它们不能放在一起。
如果您只想在All中突出显示一个额外的关键字,您只需让默认Vim检测发生,并将这些行添加到after/syntax/javascript.vim
:
syn match chinoKeywords "ChinoView"
hi def link chinoKeywords Function
但是,如果要根据文件的shebang行定义不同的chino文件类型,则需要在ftplugin/chino.vim
中:setfiletype chino
,然后在syntax/chino.vim
(在初始检查之后,在设置b:current_syntax
之前):
runtime! syntax/javascript.vim syntax/javascript/*.vim
这篇关于扩展Vim中的Java脚本语法突出显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:扩展Vim中的Java脚本语法突出显示


- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 400或500级别的HTTP响应 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01