Spec-Zone.ru › Elisp

Команды для привязки клавиш

В этом разделе описаны некоторые удобные интерактивные интерфейсы для изменения привязок клавиш. Они работают, вызывая define-key.

Люди часто используют global-set-key в своих файлах инициализации (см. Файл инициализации) для простой настройки. Например,

(global-set-key (kbd "C-x C-\\") 'next-line)

или

(global-set-key [?\C-x ?\C-\\] 'next-line)

или

(global-set-key [(control ?x) (control ?\\)] 'next-line)

переопределяет C-x C-\ для перехода к следующей строке.

(global-set-key [M-mouse-1] 'mouse-set-point)

переопределяет первую (самую левую) кнопку мыши, нажатую с клавишей Meta, для установки точки, в которой вы нажимаете.

Будьте осторожны, используя не-ASCII символы в Lisp-спецификациях клавиш для привязки. Если они считываются как многобайтовые символы, как это обычно происходит в файле Lisp (см. Загрузка не-ASCII), вы должны набирать клавиши как многобайтовые тоже. Например, если вы используете это:

(global-set-key "ö" 'my-function) ; bind o-umlaut

или

(global-set-key ?ö 'my-function) ; bind o-umlaut

и ваша языковая среда многобайтовая Latin-1, эти команды фактически привязывают многобайтовый символ с кодом 246, а не байтовый код 246 (M-v), отправленный терминалом Latin-1. Для использования этой привязки, вам нужно научить Emacs декодировать клавиатуру, используя соответствующий метод ввода (см. Методы ввода в Руководстве GNU Emacs).

Команда: global-set-key привязка клавиш

Эта функция устанавливает привязку key в текущей глобальной карте к binding.

(global-set-key key binding)
≡
(define-key (current-global-map) key binding)
Команда: global-unset-key ключ

Эта функция удаляет привязку key из текущей глобальной карты.

Одно из применений этой функции — подготовка к определению более длинной клавиши, использующей key в качестве префикса — что не допускается, если key имеет привязку не как префикс. Например:

(global-unset-key "\C-l")
    ⇒ nil
(global-set-key "\C-l\C-l" 'redraw-display)
    ⇒ nil

Эта функция эквивалентна использованию define-key следующим образом:

(global-unset-key key)
≡
(define-key (current-global-map) key nil)
Команда: local-set-key привязка клавиш

Эта функция устанавливает привязку key в текущей локальной карте клавиш к binding.

(local-set-key key binding)
≡
(define-key (current-local-map) key binding)
Команда: local-unset-key ключ

Эта функция удаляет привязку key из текущей локальной карты.

(local-unset-key key)
≡
(define-key (current-local-map) key nil)

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-Binding-Commands.html

Spec-Zone.ru

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