区域中的 Vim 语法匹配

威尔比斯

我有Java文件后的语法它有效,因为我已经定义了一些成功突出显示的语法关键字、匹配项和区域。
不是我想突出显示一些匹配项,它们在我之前定义的突出显示区域内。我的意图是首先突出显示该区域,然后匹配该区域的部分。
确切的用例是 function/class/... 描述与他们的文档关键字,如@author, @version, ... 因此我将以下内容写入我的语法文件:

syntax region _Comment start="\/\*" end="\*\/"
syntax match _CommentKey "^\s*\*\s*\zs@\w*\ze\s"

highlight link _Comment Comment
highlight link _CommentKey Special


不,我有两个问题。我独立测试,评论区工作正常。注释键匹配仅在没有\zs部分的情况下有效,因此它也突出显示了领先的*. 我一添加,\zs就不再突出显示任何内容。我该如何解决这个问题?对于其他比赛,这很好用。
第二个问题:我不把它们结合起来。如果我启用这两个规则,则只有整个部分将突出显示为Comment. 我把第二条规则放在哪里无关紧要,它不会被突出显示。我也尝试将skip用于该区域,直到我意识到它是用于不同的东西。
有任何想法吗?谢谢!


要测试的示例代码:

/**
 * Function description here.
 *
 * @param id
 * @author Max Mustermann
 */
private static int function foo(final int id) {
  return id;
}
奥斯瓦尔多医生

具有嵌套匹配项的语法区域必须允许它们:

syntax region _Comment start="\/\*" end="\*\/" contains=_CommentKey

看一下 :h syn-contains

对于你的第一个问题,你应该阅读:h syn-pattern那里你会发现以下句子:

无论 'magic' 的实际值是什么,语法模式总是像设置了 'magic' 选项一样被解释。

看看:h magic那个。您的正则表达式必须@以魔术模式转义

"^\s*\*\s*\zs\@\w*\ze\s" 

应该工作正常

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

定义vim语法文件,该文件有选择地在不同区域中应用其他语法文件

来自分类Dev

定义vim语法文件,该文件有选择地在不同区域中应用其他语法文件

来自分类Dev

如何在VIM语法高亮显示的已匹配区域内将文本标记为粗体?

来自分类Dev

扩展语法匹配区域

来自分类Dev

Vim语法仅匹配单词

来自分类Dev

VIM如何获取语法区域的定义

来自分类Dev

Vim:行后语法匹配也是语法匹配

来自分类Dev

区域中最匹配的邻居的熊猫价值总和

来自分类Dev

Vim语法不正确匹配

来自分类Dev

在vim匹配中创建新语法,但不匹配#{

来自分类Dev

在vim中折叠一个预定义的语法区域

来自分类Dev

在表格或区域中查找单元格,如果该单元格与其匹配,则返回区域中单元格旁边的值

来自分类Dev

vim语法匹配字母数字字符串

来自分类Dev

Vim的括号匹配慢且使用默认的PHP语法

来自分类Dev

使用 Perl RegEx 的 ViM 语法文件同步匹配

来自分类Dev

条件格式 - 区域中的单元格具有来自另一个区域的匹配值

来自分类Dev

为文本区域中的每个匹配创建一个函数

来自分类Dev

vim语法组可以用作语法匹配中的开始参数吗?

来自分类Dev

'(意味着在Vim语法区域,特别是在pgsql.vim中有什么特别的含义吗?

来自分类Dev

'(意味着在Vim语法区域,特别是在pgsql.vim中有什么特别的地方吗?

来自分类Dev

Vim找不到语法.vim

来自分类Dev

Vim找不到语法.vim

来自分类Dev

在语法模式中带有关键字的Vim区域

来自分类Dev

区域中的ViewComponent

来自分类Dev

#if 1的Vim语法问题

来自分类Dev

Vim语法(Markdown)

来自分类Dev

Vim变量语法高亮

来自分类Dev

Vim语法隐藏密码

来自分类Dev

Vim的Multimarkdown语法插件

Related 相关文章

热门标签

归档