GNU Emacs Lisp Reference Manual
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 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 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 Window Systems, for a related
feature.