[e|c]tags With Emacs and Vim

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.

Follow ServerWatch on Twitter

This article was originally published on Aug 17, 2009
Page 1 of 1

Tags: IDE, tags, vim, emacs
Thanks for your registration, follow us on our social networks to keep up-to-date