Go to the first, previous, next, last section, table of contents.
-
The function
set-input-mode
now takes four arguments. The last
argument is optional. Their names are interrupt, flow,
meta and quit.
The argument interrupt says whether to use interrupt-driven
input. Non-nil
means yes, and nil
means no (use CBREAK
mode).
The argument flow says whether to enable terminal flow control.
Non-nil
means yes.
The argument meta controls support for input character codes above
127. If meta is t
, Emacs converts characters with the 8th
bit set into Meta characters. If meta is nil
, Emacs
disregards the 8th bit; this is necessary when the terminal uses it as a
parity bit. If meta is neither t
nor nil
, Emacs
uses all 8 bits of input unchanged. This is good for terminals using
European 8-bit character sets.
If quit non-nil
, it is the character to use for quitting.
(Normally this is C-g.)
-
The variable
meta-flag
has been deleted; use
set-input-mode
to enable or disable support for a META
key. This change was made because set-input-mode
can send the
terminal the appropriate commands to enable or disable operation of the
META key.
-
The new variable
extra-keyboard-modifiers
lets Lisp programs
"press" the modifier keys on the keyboard.
The value is a bit mask:
- 1
-
The SHIFT key.
- 2
-
The LOCK key.
- 4
-
The CTL key.
- 8
-
The META key.
When you use X windows, the program can press any of the modifier keys
in this way. Otherwise, only the CTL and META keys can be
virtually pressed.
-
You can use the new function
keyboard-translate
to set up
keyboard-translate-table
conveniently.
-
Y-or-n questions using the
y-or-n-p
function now accept C-]
(usually mapped to abort-recursive-edit
) as well as C-g to
quit.
-
The variable
num-input-keys
is the total number of key sequences
that the user has typed during this Emacs session.
-
A new Lisp variable,
function-key-map
, holds a keymap which
describes the character sequences sent by function keys on an ordinary
character terminal. This uses the same keymap data structure that is
used to hold bindings of key sequences, but it has a different meaning:
it specifies translations to make while reading a key sequence.
If function-key-map
"binds" a key sequence k to a vector
v, then when k appears as a subsequence anywhere in a
key sequence, it is replaced with v.
For example, VT100 terminals send ESC O P when the "keypad"
PF1 key is pressed. Thus, on a VT100, function-key-map
should
"bind" that sequence to [pf1]
. This specifies translation of
ESC O P into PF1 anywhere in a key sequence.
Thus, typing C-c PF1 sends the character sequence C-c
ESC O P, but read-key-sequence
translates this back into
C-c PF1, which it returns as the vector [?\C-c PF1]
.
Entries in function-key-map
are ignored if they conflict with
bindings made in the minor mode, local, or global keymaps.
The value of function-key-map
is usually set up automatically
according to the terminal's Terminfo or Termcap entry, and the
terminal-specific Lisp files. Emacs comes with a number of
terminal-specific files for many common terminals; their main purpose is
to make entries in function-key-map
beyond those that can be
deduced from Termcap and Terminfo.
-
The variable
key-translation-map
works like function-key-map
except for two things:
-
key-translation-map
goes to work after function-key-map
is
finished; it receives the results of translation by
function-key-map
.
-
key-translation-map
overrides actual key bindings.
The intent of key-translation-map
is for users to map one
character set to another, including ordinary characters normally bound
to self-insert-command
.
Go to the first, previous, next, last section, table of contents.