Vim Conceal不适用于双等号

时间:2017-09-28 20:47:26

标签: vim vim-syntax-highlighting

我尝试编写自定义隐藏脚本,以==替换

但是,我的语法匹配似乎仅在我放=而不是==时才有效。

content.js

var body = document.body;
if (body == 'body')
    console.log('yes');

javascript.vim

当我这样做时,一切正常:

syntax match jsEqual "=" conceal cchar=≈

当我将其更改为:

syntax match jsEqual "==" conceal cchar=≈

没有任何东西被隐藏。

1 个答案:

答案 0 :(得分:1)

我可以使用vim javascript syntax plugin重现此内容,但不能使用内置语法脚本重现此内容。该扩展语法为javaScriptOpSymbols定义语法组==

找出导致突出显示的语法组。 :syn list显示所有有效群组,但在安装SyntaxAttr.vim - Show syntax highlighting attributes of character under cursor插件时更容易。

要使隐藏组适用,您需要使其适用于涵盖==的语法组;这是通过:help :syn-containedin属性完成的:

syntax match jsEqual "==" conceal cchar=≈ containedin=javaScriptOpSymbols