Vim语法文件,大括号未标注后的注释

时间:2015-06-19 15:05:06

标签: vim vim-syntax-highlighting

我的语法文件中有以下三行来设置注释。注释以#开头,允许内嵌或单独行。

syn keyword     myTodo          contained TODO FIXME
syn match       myComment       "^#.*" contains=myTodo
syn match       myComment       "\s#.*"ms=s+1 contains=myTodo

只要在#之前没有字符(包括大括号等),它就会起作用。

我试图创建一个这样的规则:

syn match       myComment       ".*#.*"ms=s+1 contains=myTodo

但这会将整行描述为评论。

即使在#之前有角色,我还需要做些什么来使其正确风格?

修改

syn match       myComment       "\s*#.*"ms=s+1 contains=myTodo

正确地在#之后高亮显示文字,#之前的文字没有被设置为评论,但#没有被设置为评论。

1 个答案:

答案 0 :(得分:0)

如果我理解得很好,就没有必要在尖锐的星座前描述这场比赛。

如果您只是尝试这样做会发生什么:

syn keyword     myTodo          contained TODO FIXME
syn match       myComment       "#.*$" contains=myTodo

这是一个简单的案例,它不会处理字符串中包含尖锐符号的情况(例如,如果语法中有一些字符串)。要进一步处理此问题,您可以添加:

syn match       Constant      /\v"([^\\]|\\.)*"/
syn match       Normal        /^.*$/ contains=Constant,myComment