-->

Previous | Table of Contents | Next

Page 135

USING WITH GNU EMACS

The GNU emacs files lisp/term/sun.el, lisp/sun-mouse.el, lisp/sun-fns.el, and src/sunfns.c provide emacs support for the emacstool and function keys. emacstool will automatically set the TERM environment variable to be sun and unset the environment variable TERMCAP. That is, these variables will not be inherited from the shell that starts emacstool. Since the terminal type is SUN (that is, the environment variable TERM is set to SUN), emacs will automatically load the file lisp/term/sun. This, in turn, will ensure that sun-mouse.el is autoloaded when any mouse events are detected. It is suggested that sun-mouse and sun-fns be loaded in your site-init.el file, so that they will always be loaded when running on a Sun workstation.

In addition, emacstool sets the environment variable IN_EMACSTOOL = "t". Lisp code in your ~/.emacs can use (getenv "IN_EMACSTOOL") to determine whether to do emacstool-specific initialization. Sun.el uses this to automatically call emacstool-init if (getenv "IN_EMACSTOOL") is defined.

The file src/sunfns.c defines several useful functions for emacs on the Sun. Among these are procedures to pop up SunView menus, put and get from the SunView STUFF buffer, and a procedure for changing the cursor icon. If you want to define or edit cursor icons, there is a rudimentary mouse-driven icon editor in the file lisp/sun-cursors.el. Try invoking (sc:edit-cursor).

BUGS

It takes a few milliseconds to create a menu before it pops up.

ENVIRONMENT VARIABLES


EMACSTOOL, IN_EMACSTOOL, TERM, TERMCAP

FILES


emacs

SEE ALSO

emacs(1), .../etc/SUN-SUPPORT, .../lisp/term/sun.el

etags

etags—Generate tag file for emacs

ctags—Generate tag file for vi

SYNOPSIS


etags [ _aCDSVH] [ _i file ][_o tagfile ]

[ --c++ ] [ --no_defines] [ --ignore_indentation ] [ --help ] [ --version ]

[ --include=file ] [ --output=tagfile ] [ --append ] file ...



ctags [ _aCdSVH] [ _BtTuvwx ] [ _o tagfile ]

[ --c++ ] [ --defines ] [ --ignore_indentation ]

[ --backward_search] [ --forward_search ] [ --typedefs ] [ --typedefs_and_c++]

[ --no_warn ] [ --cxref ] [ --help ] [ --version ]

[ --output=tagfile ] [ --append ] [ --update ] file ...

DESCRIPTION

The etags program is used to create a tag table file, in a format understood by emacs(1); the ctags program is used to create a similar table in a format understood by vi(1) . Both forms of the program understand the syntax of C, FORTRAN, Pascal, LaTeX, Scheme, emacs Lisp/Common Lisp, and most assembler_like syntaxes. Both forms read the files specified on the command line, and write a tag table (defaults: TAGS for etags, tags for ctags) in the current working directory. The programs recognize the language used in an input file based on its filename and contents; there are no switches for specifying the language.

Page 136

OPTIONS

Some options make sense only for the vi-style tag files produced by ctags; etags does not recognize them. The programs accept unambiguous abbreviations for long option names.

_a, --append Append to existing tag file. (For vi-format tag files, see also --update.)
_B, --backward_search Tag files written in the format expected by vi contain regular expression search instructions; the _B option writes them using the delimiter ?, to search backwards through files. The default is to use the delimiter / to search forwards through files. Only ctags accepts this option.
_C, --c++ Treat files with .c and .h extensions as C++ code, not C code. Files with .C, .H, .cxx, .hxx, or .cc extensions are always assumed to be C++ code.
_d, --defines Create tag entries for C preprocessor definitions, too. This is the default behavior for etags, so this option is only accepted by ctags.
_D, --no_defines Do not create tag entries for C preprocessor definitions. This may make the tags file much smaller if many header files are tagged. This is the default behavior for ctags, so this option is only accepted by etags.
-i file, --include=file Include a note in tag file indicating that, when searching for a tag, one should also consult the tags file file after checking the current file. Only etags accepts this option.
_o tagfile, --output=tagfile Explicit name of file for tag table; overrides default TAGS or tags. (But ignored with _v or _x.)
_S, --ignore_indentation Don't rely on indentation as much as we normally do. Currently, this means not to assume that a closing brace in the first column is the final brace of a function or structure definition in C and C++.
_t, --typedefs Record typedefs in C code as tags. Since this is the default behavior of etags, only ctags accepts this option.
_T, --typedefs_and_c++ Generate tag entries for typedefs, struct, enum, and union tags, and C++ member functions. Since this is the default behavior of etags, only ctags accepts this option.
_u, --update Update tag entries for files specified on command line, leaving tag entries for other files in place. Currently, this is implemented by deleting the existing entries for the given files and then rewriting the new entries at the end of the tags file. It is often faster to simply rebuild the entire tag file than to use this. Only ctags accepts this option.
_v, --vgrind Instead of generating a tag file, write index (in vgrind format) to standard output. Only ctags accepts this option.
_w, --no_warn Suppress warning messages about duplicate entries. The etags program does not check for duplicate entries, so this option is not allowed with it.
_x, --cxref Instead of generating a tag file, write a cross-reference (in cxref format) to standard output. Only ctags accepts this option.
_H, --help Print usage information.
_V, --version Print the current version of the program (same as the version of the emacs etags is shipped with).

SEE ALSO

emacs entry in info; GNU Emacs Manual, Richard Stallman.

cxref(1), emacs(1), vgrind(1), vi(1).

COPYING

Copyright " 1992 Free Software Foundation, Inc. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Previous | Table of Contents | Next