Copyright (C) 2000-2012 |
GNU Info (emacs-lisp-intro.info)etagsCreate Your Own `TAGS' File =========================== The `M-.' (`find-tag') command takes you directly to the source for a function, variable, node, or other source. The function depends on tags tables to tell it where to go. You often need to build and install tags tables yourself. They are not built automatically. A tags table is called a `TAGS' file; the name is in upper case letters. You can create a `TAGS' file by calling the `etags' program that comes as a part of the Emacs distribution. Usually, `etags' is compiled and installed when Emacs is built. (`etags' is not an Emacs Lisp function or a part of Emacs; it is a C program.) To create a `TAGS' file, first switch to the directory in which you want to create the file. In Emacs you can do this with the `M-x cd' command, or by visiting a file in the directory, or by listing the directory with `C-x d' (`dired'). Then run the compile command, with `etags *.el' as the command to execute M-x compile RET etags *.el RET to create a `TAGS' file. For example, if you have a large number of files in your `~/emacs' directory, as I do--I have 137 `.el' files in it, of which I load 12--you can create a `TAGS' file for the Emacs Lisp files in that directory. The `etags' program takes all the usual shell `wildcards'. For example, if you have two directories for which you want a single `TAGS file', type `etags *.el ../elisp/*.el', where `../elisp/' is the second directory: M-x compile RET etags *.el ../elisp/*.el RET Type M-x compile RET etags --help RET to see a list of the options accepted by `etags' as well as a list of supported languages. The `etags' program handles more than 20 languages, including Emacs Lisp, Common Lisp, Scheme, C, C++, Ada, Fortran, Java, LaTeX, Pascal, Perl, Python, Texinfo, makefiles, and most assemblers. The program has no switches for specifying the language; it recognizes the language in an input file according to its file name and contents. `etags' is very helpful when you are writing code yourself and want to refer back to functions you have already written. Just run `etags' again at intervals as you write new functions, so they become part of the `TAGS' file. If you think an appropriate `TAGS' file already exists for what you want, but do not know where it is, you can use the `locate' program to attempt to find it. Type `M-x locate RET TAGS RET' and Emacs will list for you the full path names of all your `TAGS' files. On my system, this command lists 34 `TAGS' files. On the other hand, a `plain vanilla' system I recently installed did not contain any `TAGS' files. If the tags table you want has been created, you can use the `M-x visit-tags-table' command to specify it. Otherwise, you will need to create the tag table yourself and then use `M-x visit-tags-table'. Building Tags in the Emacs sources .................................. The GNU Emacs sources come with a `Makefile' that contains a sophisticated `etags' command that creates, collects, and merges tags tables from all over the Emacs sources and puts the information into one `TAGS' file in the `src/' directory below the top level of your Emacs source directory. To build this `TAGS' file, go to the top level of your Emacs source directory and run the compile command `make tags': M-x compile RET make tags RET (The `make tags' command works well with the GNU Emacs sources, as well as with some other source packages.) For more information, see Note: Tag Tables. automatically generated by info2www version 1.2.2.9 |