根据标识符的值在适当的#ifdef块中显示代码

Display code in appropriate #ifdef block according to the value of identifier

我有一个 C 代码库,其中的源文件全部使用 #ifdef 块。有多个标识符和相应的 ifdef(ifdef 嵌套到多个级别)。在查看 vim 中的代码时,有没有一种方法可以让我定义多个标识符和 view/highlight 我的代码,以便我只看到定义标识符时适用的那些 ifdef 块。

#if defined(ID1) && (ID1 == 1)
// code 1
#elif defined(ID1) && (ID1 == 2)
// code 2

当设置ID=1时,我的视图应该只有display/highlightcode 1,当ID=2我的视图应该只有display/highlightcode 2,否则如果未定义 ID,则不应突出显示或显示 code 1code 2

DISCLAIMER

This is generally a bad idea. You never want to hide text in a source file. 
Compiling different code branches based on flags set at compile time is a 
different story. But viewing the code, you should always see what you ask 
the compiler to build

也就是说,如果您想在阅读时隐藏代码,有几种方法可以实现

  1. 折叠起来:详见:help fold
  2. Syntaxjunegunn/limelight.vim 是一个很好的工具,可以选择性地关闭光标所在区域之外的代码空间的语法突出显示。