首页 > 解决方案 > vim 插件,用于在 C/C++ 中跨预处理器#if、#else、#endif 搜索合法的不平衡括号

问题描述

在 Vim 中,'%' 可用于搜索匹配的括号。但是,在编辑这样的 C/C++ 代码时:

function f()
{
    if (a) {
        A();
#ifdef FOO
    } else if (foo_0) {
        foo(0);
    }
#else
    } else {
        bar();
        foo(1);
    }
#endif
}

即,带有不平衡括号的合法 C/C++ 代码(4 个左括号但 5 个右括号)。Vim 命令 '%' 甚至不会匹配 function 的开始/结束括号f()

是否有任何插件或任何方法可以跨预处理器条件指令匹配这些不平衡的括号?

标签: c++cvim

解决方案


推荐阅读