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.
Tip of the Trade: With exuberant-ctags you can take advantage of any IDE’s source code navigation features — without ever leaving the comfort zone of 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:
ctags -R
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.