Vim 如何正确使用与文字“*`匹配的语法?

Vim 如何正确使用与文字“*`匹配的语法?,vim,Vim,考虑以下vim语法规则,我正在使用这些规则来更改由*包围的单词的颜色 syntax match boldme /\*.\{-1,}\*/ highlight boldme ctermfg=Red 出于某种原因,此规则仅在单词位于行首时有效,*hello*在下面的第一行中为红色,但在第二行中不起作用 *hello* works Another word and *hello* does not work. 我如何使上面的场景中的 SYN匹配工作?< /P> 更新:此问题似乎是由于将文字*字符

考虑以下vim语法规则,我正在使用这些规则来更改由
*
包围的单词的颜色

syntax match boldme /\*.\{-1,}\*/
highlight boldme ctermfg=Red
出于某种原因,此规则仅在单词位于行首时有效,
*hello*
在下面的第一行中为红色,但在第二行中不起作用

*hello* works
Another word and *hello* does not work.

我如何使上面的场景中的<代码> SYN匹配<代码>工作?< /P>


更新:此问题似乎是由于将文字
*
字符用作匹配的一部分而造成的。以下匹配适用于使用

syntax match boldme /_.\+_/
因此,问题是,如何强制vim在
syn match
中正确处理文本
*
字符?

尝试以下方法:

syntax match boldme /\*.\+\*/
更新 我不知道您是如何进行测试的,请参见带有
vim-u NONE的gif动画:


我已经试过了,只是又试了一次。完全相同的效果。你能重现这个问题吗?谢谢你的截图。我刚刚注意到,添加
setft=
可以使它工作,但我正试图使它作为语法文件的一部分工作。我将用更多的复制细节更新我的问题。当我试图隔离问题时,我无法复制它,所以我接受这个答案。我的问题在其他地方,在语法规则之间的交互中。根本原因是我之前在语法文件中有这一行<代码>语法匹配错误匹配/^.*/
。不清楚为什么它不影响其他语法规则。当两个匹配发生在同一位置时,最后定义的规则将获胜。因此,boldme可以在行的开头工作,覆盖badmatch。但由于boldme没有containedin=badmatch,而badmatch没有contains=boldme,因此boldme无法在badmatch中进行匹配。