Emacs: imprime el enlace de teclas para un comando o enumera todos los enlaces de teclas

100

En Emacs (GNU 23.2, * nix), ¿cómo puedo:

  1. enumerar las secuencias de teclas vinculadas a un comando particular? Por ejemplo, ¿cómo podemos enumerar todas las secuencias de teclas que se ejecutan save-buffers-kill-emacs, con la salida de secuencias de teclas vinculadas a ella? Suponiendo que podamos hacer esto, enumerar las secuencias de teclas vinculadas goto-linedebería imprimir la salida: M-g gen una instalación predeterminada.
  2. enumerar todas las combinaciones de teclas? ¿Hace C-h besto? ¿Imprimiría mis propias encuadernaciones?

Soy consciente de que ejecutar el comando directamente puede imprimir una secuencia de teclas con la que se puede activar, pero no siempre lo hace, y suceden algunas cosas, que incluyen:
(1) la salida no permanece por mucho tiempo, (2 ) se ejecuta el comando.

Quiero un comando que enumere para mí (preferiblemente todos) los enlaces adjuntos a un comando dado, sin ejecutar el comando, o algo así.

Yktula
fuente

Respuestas:

138
  1. C-h f(o M-x describe-function) le mostrará los enlaces de un comando.

  2. Estás en lo correcto, C-h b(o M-x describe-bindings) te mostrará todos los enlaces. C-h m( M-x describe-mode) también es útil para enumerar los enlaces por modo.

También puede probar C-h k( M-x describe-key) para mostrar qué comando está vinculado a una tecla. Por ejemplo, en mi máquina save-buffers-kill-emacsno está vinculado a nada, pero C-h k C-x C-cme dice que C-x C-cestá vinculado a save-buffers-kill-terminal. Enumerará todos los enlaces para el comando al mismo tiempo.

Matt Curtis
fuente
10
+1, también hay C-h c(o M-x describe-key-briefly) que solo da la función a la que se asigna una tecla en el espacio del mini-búfer.
Shannon Severance
No estoy seguro de si debería ser una pregunta separada, pero ¿es posible mostrar todas las combinaciones de teclas / funciones que comienzan con una tecla en particular? Por ejemplo, ¿qué enlaces comienzan con <f2>? Presionar <f2> después de "Ch m" no funciona ya que Emacs está esperando una segunda tecla.
SabreWolfy
1
Preguntada como una nueva pregunta aquí: stackoverflow.com/questions/10330510/…
SabreWolfy
37

Que tal solo

M-x where-is <COMMAND>

Obtienes la misma información que obtendrías con C-h f .

También con destino a C-h w, <f1> wy <help> w.

Trey Jackson
fuente
En realidad, esta es la respuesta correcta a la primera pregunta, ya describe-functionque no enumera todos los enlaces para funciones como ignoreo self-insert-command.
David Ongaro