Emacs: imprime a ligação de teclas para um comando ou lista todas as ligações de teclas

100

No Emacs (GNU 23.2, * nix), como posso:

  1. lista as sequências de teclas vinculadas a um comando específico? Por exemplo, como podemos listar todas as sequências de teclas que são executadas save-buffers-kill-emacs, com a saída das sequências de teclas vinculadas a ela? Supondo que possamos fazer isso, listar as sequências de teclas associadas goto-linedeve imprimir a saída: M-g gem uma instalação padrão.
  2. listar todas as combinações de teclas? Faz C-h bisso? Será que imprimiria minhas próprias encadernações?

Estou ciente de que executar o comando diretamente pode imprimir uma sequência de teclas com a qual ela pode ser ativada, mas nem sempre faz isso, e algumas coisas acontecem, incluindo:
(1) a saída não permanece por muito tempo, (2 ) o comando é executado.

Eu quero um comando que liste para mim (de preferência todos) as ligações anexadas a um determinado comando, sem executar o comando, ou algo parecido.

Yktula
fonte

Respostas:

138
  1. C-h f(ou M-x describe-function) mostrará as ligações para um comando.

  2. Você está correto, C-h b(ou M-x describe-bindings) irá mostrar-lhe todas as ligações. C-h m( M-x describe-mode) também é útil para listar ligações por modo.

Você também pode tentar C-h k( M-x describe-key) para mostrar qual comando está vinculado a uma tecla. Por exemplo, na minha máquina save-buffers-kill-emacsnão está vinculado a nada, mas C-h k C-x C-cme diz que C-x C-cestá vinculado a save-buffers-kill-terminal. Ele listará todas as ligações para o comando ao mesmo tempo.

Matt Curtis
fonte
10
+1, também há C-h c(ou M-x describe-key-briefly) que apenas fornece a função atribuída a uma tecla no espaço do mini-buffer.
Shannon Severance
Não tenho certeza se esta deve ser uma pergunta separada, mas é possível mostrar todas as combinações de teclas / funções que começam com uma tecla específica? Por exemplo, quais ligações começam com <f2>? Pressionar <f2> após "Ch m" não funciona, pois o Emacs está esperando por uma segunda tecla.
SabreWolfy
1
Colocado como uma nova pergunta aqui: stackoverflow.com/questions/10330510/…
SabreWolfy
37

Que tal apenas

M-x where-is <COMMAND>

Você obtém as mesmas informações que obteria com C-h f.

Também vinculado a C-h w, <f1> we <help> w.

Trey Jackson
fonte
Na verdade, essa é a resposta correta para a primeira pergunta, já describe-functionque não lista todas as ligações para funções como ignoreou self-insert-command.
David Ongaro