Emacs: wypisuje przypisania klawiszy dla polecenia lub wyświetla wszystkie przypisania klawiszy

100

W Emacsie (GNU 23.2, * nix), jak mogę:

  1. wymienić sekwencje klawiszy powiązane z konkretnym poleceniem? Na przykład, w jaki sposób możemy wyświetlić listę wszystkich wykonywanych sekwencji klawiszy save-buffers-kill-emacswraz z danymi wyjściowymi sekwencji klawiszy z nimi powiązanych? Zakładając, że możemy to zrobić, wypisanie powiązanych sekwencji klawiszy goto-linepowinno wypisać wynik: M-g gprzy domyślnej instalacji.
  2. wyświetlić wszystkie skróty klawiszowe? Czy C-h bto robi? Czy wydrukowałby moje własne wiązania?

Zdaję sobie sprawę, że bezpośrednie wykonanie polecenia może wydrukować sekwencję klawiszy, którą można ją aktywować, ale nie zawsze tak się dzieje i dzieje się kilka rzeczy, w tym:
(1) wyjście nie pozostaje na długo, (2 ) polecenie jest wykonywane.

Chcę rozkaz które wyświetla dla mnie (najlepiej wszystkie) powiązania dołączone do danego polecenia, bez wykonywania polecenia, lub coś w tym rodzaju.

Yktula
źródło

Odpowiedzi:

138
  1. C-h f(lub M-x describe-function) pokaże powiązania dla polecenia.

  2. Masz rację, C-h b(lub M-x describe-bindings) pokaże ci wszystkie wiązania. C-h m( M-x describe-mode) jest również przydatny do wyświetlania powiązań według trybu.

Możesz także spróbować C-h k( M-x describe-key), aby pokazać, jakie polecenie jest przypisane do klawisza. Na przykład na moim komputerze save-buffers-kill-emacsnie jest do niczego przywiązany, ale C-h k C-x C-cmówi mi, że C-x C-cjest do tego zobowiązany save-buffers-kill-terminal. Wyświetli listę wszystkich powiązań dla polecenia w tym samym czasie.

Matt Curtis
źródło
10
+1, Istnieje również C-h c(lub M-x describe-key-briefly), który po prostu podaje funkcję, do której przypisany jest klawisz w przestrzeni mini-bufora.
Shannon Severance
Nie wiesz, czy to powinno być osobne pytanie, ale czy można wyświetlić wszystkie skróty klawiszowe / funkcje, które zaczynają się od określonego klawisza? Na przykład, jakie wiązania zaczynają się od <f2>? Wciśnięcie <f2> po "Ch m" nie działa, ponieważ Emacs czeka na drugi klawisz.
SabreWolfy
1
Zadane
37

Może po prostu

M-x where-is <COMMAND>

Otrzymujesz te same informacje, które otrzymujesz C-h f.

Związany również C-h w, <f1> wi <help> w.

Trey Jackson
źródło
To jest właściwie poprawna odpowiedź na pierwsze pytanie, ponieważ describe-functionnie zawiera listy wszystkich powiązań dla funkcji takich jak ignorelub self-insert-command.
David Ongaro