转义隐藏命令vimscript

时间:2016-01-11 00:08:09

标签: vim syntax-highlighting viml

我正在隐藏帮助文件以突出显示/着色特定文本字符串。这个工作正常,直到我添加:print:下面的示例。

隐瞒示例

使用这个隐藏了所有:正如预期所以我试图逃避:围绕打印字:

:%s/[^[:print:]]//g :

最初的隐瞒声明是:

syntax match myIgnoreHc /[:#]|[#:]/ contained conceal -Oopswrong original
syn match myhelpCommentHc       "[:#]\s.\{-}\s[:#]\s" contains=myIgnoreHc

我将比赛改为:

syntax match myIgnoreHc /[:#]\s\S\|\S\s[#:]/ contained conceal 

如果我将:print:写为: :print :

,则有效

但是我宁愿逃避或告诉解析器在某些情况下忽略匹配,例如::## :print :不是我之后的事情:)。

我想要实现的目标

我使用以下内容隐藏匹配的开始和结束元素,请参阅图像

syntax match myIgnoreHc /[:#]\s\S\|\S\s[#:]/ contained conceal 
syn match myhelpCommentHc       "[:#]\s.\{-}\s[:#]\s" contains=myIgnoreHc

图片中的: /if line..示例符合我的要求

但是,如果我有一个像

这样的字符串
: %s/[[:print:]]//g :

即第二个图像,然后按预期隐藏所有:

我正在寻找一种方法来逃避第二个和第三个:,因此无需在帮助文件中编写: %s/[:print:]//g :就可以隐藏它们。

: %s/[: :print: :]//g :

为了实现第二个例子

enter image description here

作为一种解决方法,我已将匹配命令更改为

syntax match myIgnoreHc /\^\*\s\|\s\^\*\s/ contained conceal 
syn match myhelpCommentHc   "\^\*\s.*\s\^\*\s" contains=myIgnoreHc

直到我用第二个^ *字符串

写帮助

enter image description here

有什么建议吗?

注意:这篇文章是以下内容的副本,因为我无法在那里得到答案:https://vi.stackexchange.com/questions/5850/escaping-a-character-included-in-a-conceal-command-vimscript

0 个答案:

没有答案