Есть ли быстрый способ отсоединить ключи в Emacs? - PullRequest
26 голосов
/ 26 сентября 2011

Я сделал ctrl ч b , чтобы просмотреть все мои привязки в emacs.Теперь я хочу отменить привязку много клавиш просто потому, что я никогда не использую эти функции Emacs и не хочу выполнять их, когда случайно нажимаю связанные клавиши!Это также освобождает много ключей для других задач (например, для использования с Cedet).Итак, кроме global-unset-key, есть ли какой-нибудь способ удаления привязок навалом?

C-a move-beginning-of-line C-b backward-char C-c mode-specific-command-prefix C-d delete-char C-e move-end-of-line C-f forward-char C-g keyboard-quit C-h help-command C-k kill-line C-l recenter-top-bottom C-n next-line C-o open-line C-p previous-line C-q quoted-insert C-t transpose-chars C-u universal-argument C-v scroll-up C-x Control-X-prefix C-z suspend-frame ESC ESC-prefix

Я хочу удалить большинство этих привязок, которые для меня абсолютно бесполезны.1014 *

Ответы [ 2 ]

37 голосов
/ 26 сентября 2011

Нет встроенного способа сброса множества клавиш, потому что это легко сделать самостоятельно:

(отредактировано для строгой корректности:)

(dolist (key '("\C-a" "\C-b" "\C-c" "\C-d" "\C-e" "\C-f" "\C-g"
               "\C-h" "\C-k" "\C-l" "\C-n" "\C-o" "\C-p" "\C-q"
               "\C-t" "\C-u" "\C-v" "\C-x" "\C-z" "\e"))
  (global-unset-key key))

Хотя я должен сказать, что большинство команд, которые вы называете «бесполезными», я бы назвал «существенными».

(отредактировано для добавления:)

Что касается освобождения ключей для других задач, есть много неиспользованного ключевого пространства:

  • Последовательности клавиш, состоящие из C-c, за которыми следует буква, по соглашению зарезервированы для пользователей.
  • Если у вас есть дополнительный модификатор, например Option на Mac или клавиша Windows на ПК, вы можете связать его с модификатором Emacs, например super. Например, super-b привязан к browse-url-at-point.
  • Если вы не на обычном терминале, клавиша Shift становится доступной для различения последовательностей клавиш. Например, у меня shift-meta-b привязано к bury-buffer.
  • Для команд, которые полезны, но не запускаются достаточно часто, чтобы оправдать выделенную последовательность клавиш, вы можете использовать defalias, чтобы предоставить более короткое имя. В моем файле .emacs у меня есть (defalias 'ru 'rename-uniquely) и (defalias 'c 'calendar) (среди многих других).
11 голосов
/ 20 мая 2012

global-unset-key и local-unset-key полезны, но стоит иметь ответ на этот вопрос, который указывает, что общий способ отсоединения ключа (для любой раскладки клавиатуры) это определить привязку nil:

(define-key KEYMAP KEY nil)

Если вы будете следовать коду для любой из этих других функций, вы заметите, что это именно то, что они делают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...