如何让Vim编辑器中的%(跳转到匹配括号)键忽略被注释掉的代码?

5
1  #include <stdio.h>
2  int main(int argc, char* argv[]) {
3    int i=10;
4  /* } */
5    return 0;
6  }

如果光标在{下的第2行,我按下%键,光标会显示在第4行(已注释)的匹配闭括号上,而不是第6行的匹配闭括号。有没有什么解决方法?
1个回答

8
您需要的是 matchit 插件。它可以扩展 % 命令的许多功能,包括跳过注释。Vim 自带但默认未启用。
根据文档:
默认情况下,除非光标在注释或字符串内,否则会忽略注释和字符串中的单词,当您键入“%”时。我刚刚在您的示例上尝试了一下,效果非常好。

我很好奇。我在像sh和html这样的文件类型中使用matchit,但是我不确定是否应该将其作为全局插件使用。完全替换%的行为让我感觉不对劲。不过,我确实喜欢它跳过注释代码的想法。你对此有什么想法吗? - Jeremy Cantrell
我认为将其设置为全局变量没有任何不利之处。它不会影响任何百分号功能,只是扩展了它。根据:h matchit,如果未定义b:match_words,则具有带有注释跳过的标准%。大多数ftplugins都会设置b:match_words,如果您不想在某个文件类型中使用它,请尝试在vimrc中使用autocmd取消设置。 - gravious

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接