22.7.2 Функциональные клавиши

На большинстве клавиатур также есть функциональные клавиши — клавиши, которые имеют имена или символы, не являющиеся символами (знаками). Функциональные клавиши представлены в Emacs Lisp как символы; имя символа — это метка функциональной клавиши в нижнем регистре. Например, нажатие клавиши с пометкой F1 генерирует входное событие, представленное символом f1.

Тип события функциональной клавиши — это сам символ события. См. Классификация событий.

Вот несколько особых случаев в соглашении об именовании символов для функциональных клавиш:

backspace, tab, newline, return, delete

Эти клавиши соответствуют распространённым управляющим символам ASCII, для которых на большинстве клавиатур есть отдельные клавиши.

В ASCII C-i и TAB — это один и тот же символ. Если терминал может различать их, Emacs передаёт это различие программам на Lisp, представляя первое как целое число 9, а второе — как символ tab.

В большинстве случаев различать их не полезно. Поэтому обычно local-function-key-map (см. Клавиатурные карты для трансляции последовательностей событий) настроена так, чтобы отображать tab в 9. Таким образом, привязка клавиш для кода символа 9 (символ C-i) также применяется к tab. То же самое справедливо и для других символов в этой группе. Функция read-char аналогичным образом преобразует эти события в символы.

В ASCII BS на самом деле является C-h. Но backspace преобразуется в код символа 127 (DEL), а не в код 8 (BS). Это предпочитает большинство пользователей.

left, up, right, down

Клавиши-стрелки курсора

kp-add, kp-decimal, kp-divide, …

Клавиши цифровой клавиатуры (справа от основной клавиатуры).

kp-0, kp-1, …

Клавиши цифровой клавиатуры с цифрами.

kp-f1, kp-f2, kp-f3, kp-f4

Программируемые клавиши (PF) цифровой клавиатуры.

kp-home, kp-left, kp-up, kp-right, kp-down

Клавиши-стрелки цифровой клавиатуры. Обычно Emacs преобразует их в соответствующие нецифровые клавиши home, left, …

kp-prior, kp-next, kp-end, kp-begin, kp-insert, kp-delete

Дополнительные дублирующие клавиши цифровой клавиатуры для клавиш, обычно находящихся в других местах. Обычно Emacs преобразует их в одноимённые нецифровые клавиши.

Вы можете использовать клавиши-модификаторы ALT, CTRL, HYPER, META, SHIFT и SUPER вместе с функциональными клавишами. Способ их представления — с помощью префиксов в имени символа:

‘A-’

Модификатор alt.

‘C-’

Модификатор control.

‘H-’

Модификатор hyper.

‘M-’

Модификатор meta.

‘S-’

Модификатор shift.

‘s-’

Модификатор super.

Таким образом, символ для клавиши F3 с зажатым META — это M-f3. Когда вы используете более одного префикса, мы рекомендуем записывать их в алфавитном порядке; однако порядок не имеет значения для аргументов функций поиска и изменения привязки клавиш.