Each terminal type can have its own Lisp library that Emacs loads when
run on that type of terminal. For a terminal type named termtype,
the library is called `term/termtype'. Emacs finds the file
by searching the load-path
directories as it does for other
files, and trying the `.elc' and `.el' suffixes. Normally,
terminal-specific Lisp library is located in `emacs/lisp/term', a
subdirectory of the `emacs/lisp' directory in which most Emacs Lisp
libraries are kept.
The library's name is constructed by concatenating the value of the
variable term-file-prefix
and the terminal type. Normally,
term-file-prefix
has the value "term/"
; changing this
is not recommended.
The usual function of a terminal-specific library is to enable special
keys to send sequences that Emacs can recognize. It may also need to
set or add to function-key-map
if the Termcap entry does not
specify all the terminal's function keys. See section Terminal Input.
When the name of the terminal type contains a hyphen, only the part of
the name before the first hyphen is significant in choosing the library
name. Thus, terminal types `aaa-48' and `aaa-30-rv' both use
the `term/aaa' library. If necessary, the library can evaluate
(getenv "TERM")
to find the full name of the terminal
type.
Your `.emacs' file can prevent the loading of the
terminal-specific library by setting the variable
term-file-prefix
to nil
. This feature is useful when
experimenting with your own peculiar customizations.
You can also arrange to override some of the actions of the
terminal-specific library by setting the variable
term-setup-hook
. This is a normal hook which Emacs runs using
run-hooks
at the end of Emacs initialization, after loading both
your `.emacs' file and any terminal-specific libraries. You can
use this variable to define initializations for terminals that do not
have their own libraries. See section Hooks.
term-file-prefix
variable is non-nil
, Emacs loads
a terminal-specific initialization file as follows:
(load (concat term-file-prefix (getenv "TERM")))
You may set the term-file-prefix
variable to nil
in your
`.emacs' file if you do not wish to load the
terminal-initialization file. To do this, put the following in
your `.emacs' file: (setq term-file-prefix nil)
.
You can use term-setup-hook
to override the definitions made by a
terminal-specific file.
See window-setup-hook
in section Window Systems, for a related
feature.
Go to the first, previous, next, last section, table of contents.