我想为任何不遵循其中一种模式的开括号创建匹配模式:
{\n\n
{\s*\/\/.*\n\(\s*\/\/.*\)\?\n
更普遍的问题是突出显示工作时违反编码规范的行为,这会在{
澄清,我正在寻找这样的代码,如下所示:
if (foo) {
this_is_bad____no_blank_line_above();
} else {this_is_worse();}
while (1) { //This comment is allowed
//This one too
theres_nothing_wrong_with_this();
}
if (foo) {
....//<-- Ideally we could mark this as bad, due to the spaces here
otherwise_perfectly_good();
}
我真正需要的是:{\(\n\n\|\s*\/\/.*\n\(\s*\/\/.*\)\?\n\)\!
构成符号\!
表示“与这两个选项中的任何一个都不匹配”。我看到了一种为单个字符执行此操作的方法,但不是更长的字符串。
答案 0 :(得分:6)
找到它:
我在寻找\@!
记录在:h /\@!
{\(\n\n\|\s*\/\/.*\n\(\s*\/\/.*\)\?\n\)\@!
答案 1 :(得分:1)
将以下内容添加到.vimrc文件的末尾:
:highlight InvalidStyle ctermbg=red guibg=red ctermfg=black guifg=black
:match InvalidStyle /{\s*[^\t \/]\+.*$/
第一行定义了一个新的高亮样式(红色为黑色),下一行试图找到任何花括号,其后面有内容而不是注释,并在其上应用突出显示。