title: Vim: How to use .config to dim lines that are not compiled in
body: <p>When reading the linux kernel source code in Vim, is there any way to tell the editor that there is a <code>.config</code> file at a certain location, and that it is to dim lines that are within macro guards that cause it to not be compiled into the kernel?</p>
  
  <p>If not, what do you do to solve the problem when reading source code? I use vim, ctags and cscope, but I end up looking into code that is not compiled into the final binary image as I had not noticed macro guards. Is there a way to avoid this?</p>
  
  <p>[EDIT]</p>
  
  <p>As an example, the <code>.config</code> file lets say I have the following config value.</p>
  
  <pre><code>...
  CONFIG_TEST_BLAH
  ...
  </code></pre>
  
  <p>Later on, in one of the C files I have :-</p>
  
  <pre><code>#ifdef CONFIG_TEST_BLAH
  void test () {
  ...
  ...
  }
  #else
  void test() {
  ...
  ...
  }
  #endif
  </code></pre>
  
  <p>In this case I'd like the block of code inside the <code>#else</code> block to be intented or colored differently so that I know its not being compiled into the final kernel image.</p>
  
  <p>[EDIT 2]</p>
  
  <p>I believe editors such as Visual Studio allow for this to happen, I'm wondering if there is a way to do this with vim.</p>