[英]VIM syntax highlight matching
我注意到 C++ 函数没有通过我的 vim 样式将任何样式应用于它们,所以我认为添加一个快速的正则表达式匹配来查找任何紧跟一个 (,并将其计为语法的单词会很简单。
在我的 .vim 中,我输入了:
syn match cppFun "\w+(?=\()"
这似乎适用于其他正则表达式匹配器,但 vim 抱怨不匹配的\\)
。 但是,检查:highlight
,我确实看到语法 cppFun 正在为它设置一些东西。
我想也许 vim 正则表达式是向后的,所以我尝试了这个
syn match cppFun "\w+\(?=(\)"
虽然它不再抱怨不匹配的括号,但我仍然没有在我的 main.cpp 中获得功能突出显示。
为了让语法高亮显示,正则表达式应该是什么样的?
这是我用\\w+(?=\\()
:
int main(int argc, char** argv) {
std::puts('Hello World');
return 0;
}
期望匹配main
和puts
您可以使用
\v\w+(\()@=
细节
\\v
- 当量词和捕获/环视括号不需要反斜杠转义时启用非常神奇的模式\\w+
- 一个或多个单词字符(字母、数字、下划线)(\\()@=
- 一个正向前瞻( (...)@=
),它需要它的模式(这里是一个(
char))立即匹配到当前位置的右侧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.