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.