Have you gotten used to hypertext? Want the same mobility in your source code and other documentation? etags may be your answer.
Keeping up to Date

Surprisingly, the TAGS and tags index files remain valid even if you insert and delete lines in the files they reference. You really need to run etags/ctags only when you add or remove functions or files. I find it convenient to have a tags: target in my Makefiles for this:

       etags $(SRC)

If you have files in many directories, you could generate a single tags file covering them all by specifying directory names on the command line. This works fine in vi and Emacs, but you'll need to set up either the tags-file-name variable or tag-table-alist if you're an XEmacs user. I personally find this pretty clumsy, and tend to stick to a TAGS file per directory.

More Information

man etags and man ctags are the obvious starting places. You'll also find good information in the Emacs info pages, and using the Emacs ?H-a command.

ctags and etags are both included in Emacs and XEmacs distributions. You can also get various other tags programs from the Internet—archie -c ctags will find a site near you.

Dave Thomas ( is an independent consultant specializing in complex Unix, OS/2 and Windows developments. He's forever grateful for all the work that's gone into Linux and XFree—it lets him work from home in Dallas on client systems in Florida, New Hampshire, Atlanta, Toronto... The phone company is happy too.


Free Dummies Books
Continuous Engineering


  • What continuous engineering is
  • How to continuously improve complex product designs
  • How to anticipate and respond to markets and clients
  • How to get the most out of your engineering resources

Get your free book now

Sponsored by IBM

Free Dummies Books
Service Virtualization

Learn to:

  • Define service virtualization
  • Select the most beneficial services to virtualize
  • Improve your traditional approach to testing
  • Deliver higher-quality software faster

Get your free book now

Sponsored by IBM