I am a software developer on a rather large project and I use vim as my primary file editor. The project is spread out over many paths. What I want to do is to create a large tag file for the entiere project. I used the find command to get my files and used the exec command to append to the tags file. However this tag file is unsorted and it takes a while for vim to search through the file. I've also tried passing the find command as an argument to the gctags command.

gctags -dTw -l c++ `find ~/the/large/project/dir/ -type f \
\( \
  \( -name '*.cpp' \) \
  -o \( -name '*.hh' \) \
  -o \( -name '*.c' \) \
  -o \( -name '*.h' \) \
\) \
-printf " $h/%f"`

The result is:
/usr/bin/gctags: Argument list to long.

Any iedeas on how to better create this tag file?

Thank you,

-Edit forgot to include the little tick marks around the find, when retyping posting this. My problem, however, is still the same.