Regex VIM语法突出显示匹配 < >我注意到C++函数没有用我的VIM样式来应用它们,所以我想简单地添加一个快速正则表达式匹配来查找紧跟其后的任何单词(并且作为语法。
在我的.vim中,我将:Regex VIM语法突出显示匹配 < >我注意到C++函数没有用我的VIM样式来应用它们,所以我想简单地添加一个快速正则表达式匹配来查找紧跟其后的任何单词(并且作为语法。,regex,vim,syntax-highlighting,Regex,Vim,Syntax Highlighting,在我的.vim中,我将: syn match cppFun "\w+(?=\()" 这似乎可以正常工作,但vim抱怨出现了不匹配的\)。 然而,检查:highlight,我确实看到了cppFun的语法设置 我想也许vim正则表达式是反的,所以我试了一下 syn match cppFun "\w+\(?=(\)" 虽然它不再抱怨不匹配的paren,但我仍然没有在main.cpp中获得功能亮点 为了显示语法高亮显示,正则表达式应该是什么样子 这就是我用\w
syn match cppFun "\w+(?=\()"
这似乎可以正常工作,但vim抱怨出现了不匹配的\)
。
然而,检查:highlight
,我确实看到了cppFun的语法设置
我想也许vim正则表达式是反的,所以我试了一下
syn match cppFun "\w+\(?=(\)"
虽然它不再抱怨不匹配的paren,但我仍然没有在main.cpp中获得功能亮点
为了显示语法高亮显示,正则表达式应该是什么样子
这就是我用\w+(?=\()
测试的对象:
希望匹配
main
和put
要匹配后跟(
而不匹配(
)的单词,请使用\w\+\ze(
)
\ze
终止正则表达式的匹配部分。需要在+
前面加上一个\
,使其变魔术。(请参阅)
同样,在vim中,使用
\@=
完成。而不是使用(?=…)
来匹配一个单词,后面跟着一个(
),而不匹配(
),请使用\w\+\ze(
)
\ze
终止正则表达式的匹配部分。需要在+
前面加上一个\
,使其变魔术。(请参阅)
另外,在vim中,使用\@=
完成。而不是使用(?=…)
可以使用
\v\w+(\()@=
详细信息
-当量词和捕获/查找括号不需要反斜杠转义时,启用非常神奇的模式\v
-一个或多个单词字符(字母、数字、下划线)\w+
——一种积极的前瞻((\()@=
),要求其模式(这里是一个(…)@=
字符)立即匹配到当前位置的右侧(
\v\w+(\()@=
详细信息
-当量词和捕获/查找括号不需要反斜杠转义时,启用非常神奇的模式\v
-一个或多个单词字符(字母、数字、下划线)\w+
——一种积极的前瞻((\()@=
),要求其模式(这里是一个(…)@=
字符)立即匹配到当前位置的右侧(
语法匹配cppFun“\v\w+\s*\([^)]*\”
试试这个:语法匹配cppFun“\v\w+\s*\([^)]*\”
int main(int argc, char** argv) {
std::puts('Hello World');
return 0;
}