ctags匹配,如果不评论

时间:2012-05-16 22:06:33

标签: regex vim ctags exuberant-ctags

在插件标签栏中,作者建议在文件.ctags中添加一些行,以生成一些不错的乳胶标签。一个例子是

--regex-latex=/^\\section[[:space:]]*\*[[:space:]]*\{([^}]+)\}/\. \1/s,section/

我遇到的唯一问题是它会将一行与评论相匹配。 latex中的注释是%之后的任何行。所以我试着将正则表达式修改为:

--regex-latex=/^[[:space:]]*[^%]+\\section[[:space:]]*(\[[^]]*\])?[[:space:]]*\{([^}]+)\}/\. \2/s,section/

我添加[[:space:]]*[^%]+的部分只是尝试消除具有一个或多个空格后跟%字符的行。 但现在问题是以\section{whatever}开头的行不会生成任何标记。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我想我想出来了,这比我想象的容易:

--regex-latex=/^[[:space:]]*[^%]+\\section[[:space:]]*(\[[^]]*\])?[[:space:]]*\{([^}]+)\}/\. \2/s,section/

应该只是

--regex-latex=/^[[:space:]]*[^%]*\\section[[:space:]]*(\[[^]]*\])?[[:space:]]*\{([^}]+)\}/\. \2/s,section/

因此,我将其更改为[^%]+而不是[^%]*。 我认为我不明白为什么,但似乎有效。