Spec-Zone.ru › Elisp

Основы ключевых отображений

Ключевое отображение — это структура данных Lisp, которая определяет связывания клавиш для различных последовательностей клавиш.

Одно ключевое отображение напрямую определяет определения для отдельных событий. Когда последовательность клавиш состоит из одного события, его связывание в ключевом отображении является определением ключевого отображения для этого события. Связывание более длинной последовательности клавиш находится итеративным процессом: сначала находится определение первого события (которое само должно быть ключевым отображением); затем находится определение второго события в этом ключевом отображении и так далее, пока не будут обработаны все события в последовательности клавиш.

Если связывание последовательности клавиш является ключевым отображением, мы называем эту последовательность префиксной клавишей. В противном случае мы называем её полной клавишей (потому что больше событий к ней добавить нельзя). Если связывание равно nil, мы называем клавишу неопределённой. Примеры префиксных клавиш — C-c, C-x и C-x 4. Примеры определённых полных клавиш — X, RET и C-x 4 C-f. Примеры неопределённых полных клавиш — C-x C-g и C-c 3. Дополнительную информацию см. в Префиксные клавиши.

Правило поиска связывания последовательности клавиш предполагает, что промежуточные связывания (найденные для событий до последнего) являются всеми ключевыми отображениями; если это не так, последовательность событий не образует единицу — это не действительно одна последовательность клавиш. Другими словами, удаление одного или нескольких событий из конца любой корректной последовательности клавиш всегда должно давать префиксную клавишу. Например, C-f C-n не является последовательностью клавиш; C-f не является префиксной клавишей, поэтому более длинная последовательность, начинающаяся с C-f, не может быть последовательностью клавиш.

Набор возможных последовательностей клавиш с несколькими событиями зависит от связей для префиксных клавиш; поэтому он может быть разным для различных ключевых отображений и может меняться при изменении связей. Однако последовательность из одного события всегда является последовательностью клавиш, потому что она не зависит от каких-либо префиксных клавиш для своей корректности.

В любое время несколько основных ключевых отображений активны — то есть используются для поиска связей клавиш. Это глобальное отображение, которое используется всеми буферами; локальное ключевое отображение, которое обычно связано с определённым основным режимом; и ноль или более ключевых отображений режима подрежима, которые относятся к текущим включенным режимам подрежима. (Не все режимы подрежима имеют ключевые отображения.) Связывания локального ключевого отображения затеняют (то есть имеют приоритет перед) соответствующими глобальными связываниями. Ключевые отображения режимов подрежима затеняют как локальные, так и глобальные ключевые отображения. Дополнительные сведения см. в Активные ключевые отображения.

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/Keymap-Basics.html

Spec-Zone.ru

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