0

我正在使用帮助文件中的隐藏来突出显示/着色特定的文本字符串。在我添加下面的 :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:as: :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 :

为了实现第二个例子

在此处输入图像描述

作为一种解决方法,我将 match 命令更改为

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

在我用第二个 ^* 字符串编写帮助之前,它一直有效

在此处输入图像描述

有什么建议么?

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

4

0 回答 0