25.5 Описание символов для сообщений справки

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

Функция: key-description sequence &optional prefix

Эта функция возвращает строку, содержащую стандартную нотацию Emacs для входных событий в sequence. Если prefix не равен nil, это последовательность входных событий, предшествующих sequence, и она включается в возвращаемое значение. Оба аргумента могут быть строками, векторами или списками. См. Входные события для получения дополнительной информации о допустимых событиях.

(key-description [?\M-3 delete])
     ⇒ "M-3 <delete>"
(key-description [delete] "\M-3")
     ⇒ "M-3 <delete>"

См. также примеры для single-key-description ниже.

Функция: single-key-description event &optional no-angles

Эта функция возвращает строку, описывающую event в стандартной нотации Emacs для ввода с клавиатуры. Обычный печатаемый символ отображается сам по себе, но управляющий символ преобразуется в строку, начинающуюся с ‘C-’, мета-символ преобразуется в строку, начинающуюся с ‘M-’, а пробел, таб и т. д. отображаются как ‘SPC’, ‘TAB’, и т. д. Символ функциональной клавиши отображается внутри угловых скобок ‘<…>’. Событие, которое является списком, отображается как имя символа в CAR списка, внутри угловых скобок.

Если необязательный аргумент no-angles не равен nil, угловые скобки вокруг функциональных клавиш и символов событий опускаются; это для совместимости со старыми версиями Emacs, которые не использовали скобки.

(single-key-description ?\C-x)
     ⇒ "C-x"
(key-description "\C-x \M-y \n \t \r \f123")
     ⇒ "C-x SPC M-y SPC C-j SPC TAB SPC RET SPC C-l 1 2 3"
(single-key-description 'delete)
     ⇒ "<delete>"
(single-key-description 'C-mouse-1)
     ⇒ "C-<mouse-1>"
(single-key-description 'C-mouse-1 t)
     ⇒ "C-mouse-1"
Функция: text-char-description character

Эта функция возвращает строку, описывающую character в стандартной нотации Emacs для символов, которые могут встречаться в тексте — подобно single-key-description, за исключением того, что аргумент должен быть допустимым кодом символа, который проходит проверку characterp (см. Коды символов). Функция производит описания управляющих символов с ведущим каретом (поскольку Emacs обычно отображает управляющие символы в буферах именно так). Символы с битами модификатора вызовут ошибку в этой функции (ASCII символы с модификатором Control являются исключением, они представляются как управляющие символы).

(text-char-description ?\C-c)
     ⇒ "^C"
(text-char-description ?\M-m)
     error→ Wrong type argument: characterp, 134217837
Команда: read-kbd-macro string &optional need-vector

Эта функция в основном используется для работы с клавиатурными макросами, но ее также можно использовать как грубый обратный вызов для key-description. Вы вызываете ее со строкой, содержащей описания клавиш, разделенные пробелами; она возвращает строку или вектор, содержащий соответствующие события. (Это может быть одной допустимой последовательностью клавиш или нет, в зависимости от используемых событий; см. Последовательности клавиш.) Если need-vector не равен nil, возвращаемое значение всегда является вектором.