Клавишные макросы
Клавишный макрос — это предварительно записанная последовательность событий ввода, которая может рассматриваться как команда и использоваться для определения клавиши. Представление клавишного макроса в Lisp — это строка или вектор, содержащий эти события. Не путайте клавишные макросы с макросами Lisp (см. Макросы).
- Функция: execute-kbd-macro kbdmacro &optional count loopfunc
Эта функция выполняет kbdmacro как последовательность событий. Если kbdmacro — это строка или вектор, то события в нём выполняются точно так же, как если бы их ввёл пользователь. Не ожидается, что последовательность будет единственной последовательностью нажатий клавиш; обычно определение клавишного макроса состоит из нескольких последовательностей нажатий клавиш.
Если kbdmacro — это символ, то используется его определение функции вместо kbdmacro. Если это другой символ, этот процесс повторяется. В конечном итоге результатом должна быть строка или вектор. Если результат не является символом, строкой или вектором, генерируется ошибка.
Аргумент count — это счётчик повторений; kbdmacro выполняется указанное число раз. Если count опущен или
nil, kbdmacro выполняется один раз. Если он равен 0, kbdmacro выполняется снова и снова, пока не возникнет ошибка или не произойдёт сбой поиска.Если loopfunc не
nil, это функция, которая вызывается без аргументов перед каждым итерацией макроса. Если loopfunc возвращаетnil, то выполнение макроса прекращается.См. Чтение одного события, для примера использования
execute-kbd-macro.
- Переменная: executing-kbd-macro
Эта переменная содержит строку или вектор, определяющие клавишный макрос, который в настоящее время выполняется. Она
nil, если в данный момент не выполняется никакой макрос. Команда может проверить эту переменную, чтобы по-разному вести себя при запуске из исполняемого макроса. Не устанавливайте эту переменную самостоятельно.
- Переменная: defining-kbd-macro
Эта переменная имеет ненулевое значение тогда и только тогда, когда определяется клавишный макрос. Команда может проверить эту переменную, чтобы по-разному вести себя во время определения макроса. Значение равно
appendпри добавлении к определению существующего макроса. Командыstart-kbd-macro,kmacro-start-macroиend-kbd-macroустанавливают эту переменную — не устанавливайте её самостоятельно.Переменная всегда локальна для текущего терминала и не может быть локальной для буфера. См. Несколько терминалов.
- Переменная: last-kbd-macro
Эта переменная представляет определение последнего определённого клавишного макроса. Её значение — строка или вектор, или
nil.Переменная всегда локальна для текущего терминала и не может быть локальной для буфера. См. Несколько терминалов.
- Переменная: kbd-macro-termination-hook
Этот стандартный обработчик вызывается при завершении клавишного макроса, независимо от причины его завершения (достижения конца макроса или ошибки, которая преждевременно завершила макрос).
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/Keyboard-Macros.html