Последовательности клавиш
Последовательность клавиш, или, сокращённо, клавиша, — это последовательность из одного или нескольких событий ввода, образующих единое целое. К событиям ввода относятся символы, функциональные клавиши, действия мыши или системные события, внешние по отношению к Emacs, например iconify-frame (см. События ввода). Представлением последовательности клавиш в Emacs Lisp является строка или вектор. Если не указано иное, любая функция Emacs Lisp, принимающая последовательность клавиш в качестве аргумента, может работать с обоими представлениями.
В строковом представлении буквенно-цифровые символы обычно обозначают сами себя; например, "a" обозначает a, а "2" обозначает 2. События управляющих символов предваряются подстрокой "\C-", а метасимволов — "\M-"; например, "\C-x" обозначает клавишу C-x. Кроме того, события TAB, RET, ESC и DEL представляются соответственно как "\t", "\r", "\e" и "\d". Строковое представление полной последовательности клавиш — это конкатенация строковых представлений составляющих её событий; таким образом, "\C-xl" обозначает последовательность клавиш C-x l.
Последовательности клавиш, содержащие функциональные клавиши, события кнопок мыши, системные события или символы, не относящиеся к ASCII, такие как C-= или H-a, нельзя представить в виде строк; для них необходимо использовать векторы.
В векторном представлении каждый элемент вектора обозначает событие ввода в его форме Lisp. См. События ввода. Например, вектор [?\C-x ?l] обозначает последовательность клавиш C-x l.
Примеры последовательностей клавиш в строковом и векторном представлениях см. в разделе Переназначение при инициализации в Руководстве GNU Emacs.
- Функция: kbd keyseq-text
-
Эта функция преобразует текст keyseq-text (строковую константу) в последовательность клавиш (строковую или векторную константу). Содержимое keyseq-text должно использовать тот же синтаксис, что и буфер, вызываемый командой C-x C-k RET (
kmacro-edit-macro); в частности, имена функциональных клавиш необходимо заключать в ‘<…>’. См. раздел Редактирование макроса клавиатуры в Руководстве GNU Emacs.(kbd "C-x") ⇒ "\C-x" (kbd "C-x C-f") ⇒ "\C-x\C-f" (kbd "C-x 4 C-f") ⇒ "\C-x4\C-f" (kbd "X") ⇒ "X" (kbd "RET") ⇒ "^M" (kbd "C-c SPC") ⇒ "\C-c " (kbd "<f1> SPC") ⇒ [f1 32] (kbd "C-M-<down>") ⇒ [C-M-down]
Функция
kbdвесьма снисходительна и постарается вернуть разумный результат, даже если использованный синтаксис не вполне соответствует правилам. Чтобы проверить, действительно ли синтаксис допустим, воспользуйтесь функциейkey-valid-p.
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Sequences.html