Vim Tips Wiki
No edit summary
(Adding categories)
Line 29: Line 29:
 
[http://www.vim.org/scripts/script.php?script_id=3219 ProjectTag]
 
[http://www.vim.org/scripts/script.php?script_id=3219 ProjectTag]
 
==Comments==
 
==Comments==
  +
[[Category:ctags ]]

Revision as of 11:09, 26 March 2012

When you want to generate a ctags file for your standard headers, you may have know the following command:

   ctags –R --c++-kinds=+p --fields=+iaS --extra=+q /usr/include 

Yes, this could really work, but sometimes you may got a HUGE tags file, with some extra symbols that has nothing to do with your project. This tip will give you a solution: generate a tags file including symbols of your C/C++ files and their including headers.

The following shell script would do this for you:

   #!/bin/sh
   gcc -M $* | sed -e 's/[\\ ]/\n/g' | \
           sed -e '/^$/d' -e '/\.o:[ \t]*$/d' | ctags -L - --c++-kinds=+p --fields=+iaS --extra=+q

Assuming you have saved the code as ctags_with_deps.sh, simple execute

   /path/to/ctags_with_deps.sh file1.cpp file2.c file3.cpp

then a tags file containing the symbols of the source files and headers included will be generated.

There is also a vim plugin called ProjectTag could do this, and could also work on Windows, but it requires you have your vim built with python enabled.

References

The shell script ProjectTag

Comments