Emacs: imprimer les raccourcis clavier pour une commande ou lister tous les raccourcis clavier

100

Dans Emacs (GNU 23.2, * nix), comment puis-je:

  1. lister les séquences de touches liées à une commande particulière? Par exemple, comment pouvons-nous lister toutes les séquences de touches qui s'exécutent save-buffers-kill-emacs, avec la sortie des séquences de touches qui y sont liées? En supposant que nous puissions le faire, lister les séquences de touches liées à goto-linedevrait imprimer la sortie: M-g gsur une installation par défaut.
  2. lister tous les raccourcis clavier? Le C-h bfait-il? Est-ce qu'il imprimerait mes propres reliures?

Je suis conscient que l'exécution directe de la commande peut imprimer une séquence de touches avec laquelle elle peut être activée, mais ce n'est pas toujours le cas, et certaines choses se produisent, notamment:
(1) la sortie ne reste pas longtemps, (2 ) la commande est exécutée.

Je veux une commande qui répertorie pour moi (de préférence toutes) les liaisons attachées à une commande donnée, sans exécuter la commande, ou quelque chose comme ça.

Yktula
la source

Réponses:

138
  1. C-h f(ou M-x describe-function) vous montrera les liaisons pour une commande.

  2. Vous avez raison, C-h b(ou M-x describe-bindings) vous montrera toutes les liaisons. C-h m( M-x describe-mode) est également pratique pour lister les liaisons par mode.

Vous pouvez également essayer C-h k( M-x describe-key) pour montrer quelle commande est liée à une clé. Par exemple, sur ma machine save-buffers-kill-emacsn'est lié à rien, mais C-h k C-x C-cme dit que C-x C-cc'est lié à save-buffers-kill-terminal. Il listera toutes les liaisons de la commande en même temps.

Matt Curtis
la source
10
+1, Il y a aussi C-h c(ou M-x describe-key-briefly) qui donne simplement la fonction à laquelle une touche est affectée dans l'espace mini-tampon.
Shannon Severance
Vous ne savez pas si cela devrait être une question distincte, mais est-il possible d'afficher toutes les combinaisons de touches / fonctions qui commencent par une touche particulière? Par exemple, quelles liaisons commencent par <f2>? Appuyer sur <f2> après "Ch m" ne fonctionne pas car Emacs attend une seconde touche.
SabreWolfy
1
Posée comme nouvelle question ici: stackoverflow.com/questions/10330510
...
37

Que diriez-vous juste

M-x where-is <COMMAND>

Vous obtenez les mêmes informations qu'avec C-h f.

Également lié à C-h w, <f1> wet <help> w.

Trey Jackson
la source
C'est en fait la bonne réponse à la première question, car describe-functionne répertorie pas toutes les liaisons pour des fonctions telles que ignoreou self-insert-command.
David Ongaro