Spec-Zone.ru › Elisp

Последовательности клавиш

Последовательность клавиш, или коротко клавиша, — это последовательность одного или нескольких событий ввода, образующих единицу. События ввода включают символы, функциональные клавиши, действия мыши или системные события, внешние для 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.

Примеры последовательностей клавиш, записанных в строковом и векторном представлениях, см. в Init Rebinding в Руководстве пользователя 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]

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Sequences.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API