Emacs: распечатать привязку клавиш для команды или перечислить все привязки клавиш

100

В Emacs (GNU 23.2, * nix) как я могу:

  1. перечислить последовательности клавиш, привязанные к конкретной команде? Например, как мы можем перечислить все выполняемые последовательности save-buffers-kill-emacsклавиш с привязкой к ним выводимых последовательностей? Предполагая, что мы можем это сделать, перечисление связанных последовательностей клавиш goto-lineдолжно напечатать вывод: M-g gпри установке по умолчанию.
  2. перечислить все привязки клавиш? Это делает C-h b? Будет ли он печатать мои собственные привязки?

Я знаю, что выполнение команды напрямую может распечатать последовательность клавиш, с помощью которой она может быть активирована, но это не всегда так, и происходит несколько вещей, в том числе:
(1) вывод остается недолго, (2 ) команда выполняется.

Мне нужна команда, которая перечисляет для меня (желательно все) привязки, прикрепленные к данной команде, без выполнения команды или что-то в этом роде.

Ыктула
источник

Ответы:

138
  1. C-h f(или M-x describe-function) покажет вам привязки для команды.

  2. Вы правы, C-h b(или M-x describe-bindings) покажет вам все привязки. C-h m( M-x describe-mode) также удобен для перечисления привязок по режимам.

Вы также можете попробовать C-h k( M-x describe-key) показать, какая команда привязана к ключу. Например, на моей машине save-buffers-kill-emacsни к чему не привязан, но C-h k C-x C-cсообщает мне, что C-x C-cпривязан к save-buffers-kill-terminal. В нем будут перечислены все привязки для команды одновременно.

Мэтт Кертис
источник
10
+1, Также есть C-h c(или M-x describe-key-briefly), который просто дает функцию, которой назначена клавиша в пространстве мини-буфера.
Шеннон Северанс,
Не уверен, что это должен быть отдельный вопрос, но можно ли показать все сочетания клавиш / функции, которые начинаются с определенной клавиши? Например, какие привязки начинаются с <f2>? Нажатие <f2> после «Ch m» не работает, поскольку Emacs ожидает второй клавиши.
SabreWolfy
1
Задан
37

Как насчет просто

M-x where-is <COMMAND>

Вы получите ту же информацию, что и C-h f.

Также привязан к C-h w, <f1> wи <help> w.

Трей Джексон
источник
На самом деле это правильный ответ на первый вопрос, поскольку describe-functionне перечислены все привязки для таких функций, как ignoreили self-insert-command.
Дэвид Онгаро