Эта переменная содержит глобальную карту ключей по умолчанию, которая сопоставляет
ввод с клавиатуры Emacs командам. Глобальная карта ключей обычно является
этой картой. Глобальная карта по умолчанию — это полная карта ключей, которая связывает
self-insert-command со всеми печатаемыми символами.
Обычной практикой является изменение привязок в глобальной карте ключей, но вам не следует присваивать этой переменной какое-либо значение, кроме карты ключей, с которой она начинается.
Эта функция возвращает текущую глобальную карту ключей. Это то же самое, что и
значение global-map, если только вы не изменили одну из них.
Возвращаемое значение является ссылкой, а не копией; если вы используете
keymap-set или другие функции с ней, вы измените глобальные
привязки.
(current-global-map)
⇒ (keymap [set-mark-command beginning-of-line …
delete-backward-char])
Эта функция возвращает локальную карту ключей текущего буфера или nil,
если её нет. В следующем примере карта ключей для
буфера *scratch* (в режиме Lisp Interaction) является разреженной картой
ключей, в которой запись для ESC, код ASCII 27, является другой разреженной
картой ключей.
(current-local-map)
⇒ (keymap
(10 . eval-print-last-sexp)
(9 . lisp-indent-line)
(127 . backward-delete-char-untabify)
(27 keymap
(24 . eval-defun)
(17 . indent-sexp)))
current-local-map возвращает ссылку на локальную карту ключей, а не
её копию; если вы используете keymap-set или другие функции с ней,
вы измените локальные привязки.
Эта функция возвращает список карт ключей включенных в данный момент второстепенных режимов.
Эта функция делает keymap новой текущей глобальной картой ключей. Она
возвращает nil.
Очень необычно изменять глобальную карту ключей.
Эта функция делает keymap новой локальной картой ключей текущего
буфера. Если keymap равен nil, то буфер не имеет локальной
карты ключей. use-local-map возвращает nil. Большинство команд
основных режимов используют эту функцию.
Эта переменная является ассоциативным списком, описывающим карты ключей, которые могут быть активны или нет в зависимости от значений определённых переменных. Её элементы выглядят так:
(variable . keymap)
Карта ключей keymap активна всякий раз, когда variable имеет ненулевое значение. Обычно variable — это переменная, которая включает или отключает второстепенный режим. См. Карты ключей и второстепенные режимы.
Обратите внимание, что элементы minor-mode-map-alist не имеют той же
структуры, что и элементы minor-mode-alist. Карта должна быть
CDR элемента; список с картой в качестве второго элемента не
подойдёт. CDR может быть либо картой ключей (списком), либо символом, чьё
определение функции является картой ключей.
Когда активно более одной карты ключей второстепенного режима, более ранняя в
minor-mode-map-alist имеет приоритет. Но вам следует проектировать
второстепенные режимы так, чтобы они не мешали друг другу. Если вы
сделаете это правильно, порядок не будет иметь значения.
См. Карты ключей и второстепенные режимы для получения дополнительной информации о второстепенных
режимах. См. также minor-mode-key-binding (см. Функции для поиска ключа).
Эта переменная позволяет основным режимам переопределять привязки ключей для
конкретных второстепенных режимов. Элементы этого ассоциативного списка выглядят как
элементы minor-mode-map-alist: (variable
. keymap).
Если переменная появляется как элемент
minor-mode-overriding-map-alist, карта, указанная этим
элементом, полностью заменяет любую карту, указанную для той же переменной в
minor-mode-map-alist.
minor-mode-overriding-map-alist автоматически является локальным для буфера во
всех буферах.
Если не равна nil, эта переменная содержит карту ключей для использования вместо
локальной карты буфера, любых карт ключей текстовых свойств или наложений, а также
любых карт ключей второстепенных режимов. Эта карта, если указана, переопределяет все
другие карты, которые могли бы быть активны, за исключением текущей глобальной карты.
Если не равна nil, эта переменная содержит карту ключей для использования вместо
overriding-local-map, локальной карты буфера, карт ключей текстовых свойств
или наложений, а также всех карт ключей второстепенных режимов.
Эта переменная всегда локальна для текущего терминала и не может быть локальной для буфера. См. Несколько терминалов. Она используется для реализации режима инкрементного поиска.
Если эта переменная не равна nil, значение
overriding-local-map или overriding-terminal-local-map может
влиять на отображение строки меню. Значение по умолчанию — nil, так
что эти переменные карт не влияют на строку меню.
Обратите внимание, что эти две переменные карт влияют на выполнение ключевых последовательностей, вводимых через строку меню, даже если они не влияют на отображение строки меню. Поэтому если поступает ключевая последовательность строки меню, вам следует очистить переменные перед поиском и выполнением этой ключевой последовательности. Режимы, использующие эти переменные, обычно делают это в любом случае; обычно они реагируют на события, которые не обрабатывают, «возвращая» их и завершая работу.
Эта переменная содержит карту ключей для специальных событий. Если тип события имеет
привязку в этой карте ключей, то оно является специальным, и привязка для
события выполняется непосредственно read-event. См. Специальные события.
Эта переменная содержит список ассоциативных списков карт ключей для использования в
режимах эмуляции. Она предназначена для режимов или пакетов, использующих несколько карт
ключей второстепенных режимов. Каждый элемент является ассоциативным списком карт ключей, который имеет тот же формат и
значение, что и minor-mode-map-alist, или символ с привязкой
переменной, который является таким ассоциативным списком. Активные карты ключей в каждом ассоциативном списке
используются перед minor-mode-map-alist и
minor-mode-overriding-map-alist.
Эта функция добавляет keymap в качестве транзиентной карты ключей, которая имеет приоритет над другими картами ключей для одного (или нескольких) последующих нажатий клавиш.
Обычно keymap используется только один раз для поиска непосредственно следующей клавиши.
Если необязательный аргумент keep-pred равен t, карта остается
активной, пока пользователь вводит клавиши, определённые в keymap; когда
пользователь вводит клавишу, которой нет в keymap, транзиентная карта
деактивируется, и нормальный поиск ключа продолжается для этой клавиши.
Аргумент keep-pred также может быть функцией. В этом случае функция вызывается без аргументов перед выполнением каждой команды, пока активна keymap; она должна возвращать ненулевое значение, если keymap должна оставаться активной.
Необязательный аргумент on-exit, если не равен nil, задает
функцию, которая вызывается без аргументов после деактивации
keymap.
Необязательный аргумент message задает сообщение для отображения после активации транзиентной карты. Если message является строкой, это строка формата для сообщения, и любой спецификатор ‘%k’ в этой строке заменяется списком клавиш из транзиентной карты. Любое другое ненулевое значение message означает формат сообщения по умолчанию ‘Repeat with %k’ (Повторить с помощью %k).
Если необязательный аргумент timeout не равен nil, он должен быть
числом, указывающим, сколько секунд бездействия ждать перед
деактивацией keymap. Значение переменной
set-transient-map-timeout, если не равно nil, переопределяет
значение этого аргумента.
Эта функция работает путем добавления и удаления keymap из
переменной overriding-terminal-local-map, которая имеет приоритет
над всеми другими активными картами ключей (см. Поиск в активных картах ключей).