Vim 隐藏对双等号不起作用

Vim Conceal not working for double equals

我正在尝试编写一个自定义隐藏脚本以将 == 替换为

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

content.js

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

javascript.vim

当我这样做时一切正常:

syntax match jsEqual "=" conceal cchar=≈

当我把它改成:

syntax match jsEqual "==" conceal cchar=≈

无所遁形

我可以使用 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