title: How can I generate tags file with exuberant ctags in ubuntu's C/C++ include directories for using with gvim?
body: <p>I use GVim 7.4 with TDM-GCC 64 in Windows 7.
  I know the include directories of this compiler,
  and added the paths suitably to gvim's tags search path.
  Everything is fine in Windows.</p>
  
  <p>But I am new to ubuntu, I currently installed ubuntu 13.10 (Saucy),
  but a bit confused about the compiler's include directories.</p>
  
  <p>I found some of these directories are:</p>
  
  <pre><code>/usr/include
  /usr/src
  /usr/local/include
  /usr/include
  /usr/lib/gcc/i686-linux-gnu/4.8
  /usr/lib/gcc/x86_64-linux-gnu/4.8/include
  </code></pre>
  
  <p>Finally I created a shell script as follows:</p>
  
  <pre><code>#!/bin/sh
  cd /usr/include
  sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
  cd /usr/src
  sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
  cd /usr/local/include
  sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
  cd /usr/include
  sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
  cd /usr/lib/gcc/i686-linux-gnu/4.8
  sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
  cd /usr/lib/gcc/x86_64-linux-gnu/4.8/include
  sudo ctags -R --c-kinds=+pxfvtcdeglmnsu --c++-kinds=+pxfvtcdeglmnsu --languages=C,C++ --langmap=C:.c.h --langmap=C++:.C.h.c.cpp.hpp.c++.cc.cp.cxx.h++.hh.hp.hxx --fields=+iaSm --extra=+qf -f tags *
  </code></pre>
  
  <p>But this script is generating a gigantic huge tags file,
  consequently vim is getting slower while searching functions, variables, struct,
  prototypes etc.
  When I am pressing "&lt; C-X > &lt; C-O >" or Tab (I configured omni-completion to Tab),
  vim is freezing for a while then suggesting the content I am looking for.</p>
  
  <p>Finally I decided to discard the recursive (-R) option, but my question is:</p>
  
  <p>1) What are the actual include directories in ubuntu?</p>
  
  <p>2) Where should I use recursive and where not?</p>
  
  <p>3) Many directories are not generally needed, such as '/usr/src/' or '/usr/src/nvidia-331.38'
  which mostly contains Linux headers and NVIDIA driver functions.
  What are these type of directories so that I can list it in my .vimrc as the last option?</p>
  
  <p>I am looking for a solution to find everything (functions, variables, struct) without having to slow down vim.</p>
  
  <p>Thanks in advance.</p>