Подтвердить что ты не робот

Есть ли быстрый способ развязать ключи в Emacs?

Я сделал ctrl h b, чтобы просмотреть все мои привязки в emacs. Теперь я хочу развязать клавиши много, просто потому, что я никогда не использую эти функции Emacs, и я не хочу их выполнять, когда я случайно нажимаю связанные клавиши! Это также освобождает много ключей для других задач (например, для использования с Cedet). Таким образом, помимо глобального-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

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

4b9b3361

Ответ 1

Там нет встроенного способа, чтобы отключить много ключей, потому что это легко сделать сами:

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

(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) (среди многих других).

Ответ 2

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

(define-key KEYMAP KEY nil)

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