IDEs can be useful when you're coding; however, you may, like me, have a preference for an editor you already know. The exuberant-ctags package offers some of the source code navigation features of an IDE within Emacs or Vim.
The major advantage of exuberant-ctags over the older versions of ctags (for vi(m)) and etags (for Emacs) is that it has a recurse option:
To generate Emacs-compatible tagfiles, use:
ctags -e -R
Type ctags --list-languages for a list of supported languages.
Your tags are stored in either a TAGS (Emacs) or tags (Vim) file. To use the tags in Vim once they've been generated, fire up one of your source files in Vim (or use vim -t tagname to start at a particular tagname), and use :ta tagname to jump to a tagname, or Ctrl-] to jump to the tag under the cursor. Ctrl-T will return you to where you were before.
With Emacs, use M-. tagname to jump to the tag (M-. will jump to the tag under the cursor), and M-* to return. C-U M-. will keep scrolling round through tag definitions if there's more than one of them.
For Vim, you can also try the taglist.vim plugin, which will give you a tag overview side panel. For autocompletion of tag names, try Ctrl-P (this will also autocomplete other words in the file), providing another IDE-type feature.
IDEs do have their uses, but editors can be faster under the fingers and easier to run on slower machines; exuberant-ctags is useful to speed up your coding within your preferred editor.