Odpowiedzi:
Aby po prostu znaleźć skróty klawiszowe dla polecenia, możesz użyć funkcji pomocy emacsa „gdzie jest”
C-h w command-name
Jeśli dla polecenia ustawiono wiele powiązań, wszystkie zostaną wymienione.
Na odwrót, biorąc pod uwagę sekwencję klawiszy, możesz wpisać
C-h k key-sequence
Aby uzyskać polecenie, które będzie działać.
Możesz uzyskać szczegółowe informacje o poleceniu, także o dowolnej zdefiniowanej funkcji nieinteraktywnej, wpisując
C-h f function-name
Który dostarczy ci szczegółowych informacji o funkcji, w tym wszelkich przypisaniach klawiszowych do niej, i
C-h v variable-name
poda informacje o dowolnej (powiązanej) zmiennej. Mapy kluczy są przechowywane w zmiennych, jednak kody kluczy są przechowywane w surowym formacie. Spróbuj C-h v isearch-mode-mapna przykład.
Aby uzyskać dodatkową pomoc dotyczącą uzyskiwania pomocy, możesz pisać
C-h ?
C-h w <function name>wiedzieć, gdzie jest klucz, a nie pełną dokumentację. I odwrotnie, możesz również C-h c <key sequence>po prostu wiedzieć, jaka funkcja jest powiązana z sekwencją klawiszy.
C-hz czymś innym w swoich menedżerach okien: C-h wodpowiada M-x where-is. C-h kjest równoważne M-x describe-key. C-h fjest równoważne M-x describe-function. C-h vjest równoważne M-x describe-variable. C-h ?jest równoważne M-x help-for-help. Pamiętaj również, że f1można użyć zamiast C-h.
Aby uzyskać interaktywne powiązanie polecenia ze skrótem klawiaturowym (lub sekwencją klawiszy w terminach Emacsa), zobacz wybraną odpowiedź.
Aby programowo uzyskać polecenie powiązane z daną sekwencją klawiszy, użyj funkcji key-bindinglub, lookup-keyktóra pobiera sekwencję klawiszy i zwraca jej powiązane polecenie. Funkcja key-bindingjest tym, czego C-h kużywa.
(key-binding (kbd "C-h m"))
zwraca polecenie powiązane z C-h mwyszukiwaniem we wszystkich bieżących mapach klawiszy. Funkcja lookup-keywyszukuje w jednym układzie klawiszy:
(lookup-key (current-global-map) (kbd "TAB")) ; => indent-for-tab-command
(lookup-key org-mode-map (kbd "TAB")) ; => org-cycle
(lookup-key text-mode-map (kbd "TAB")) ; => nil
(lookup-key isearch-mode-map (kbd "TAB")) ; => isearch-printing-char
where-is-internalPrawdopodobnie jest to funkcja, której należy użyć do programowego pobierania wszystkich sekwencji klawiszy związanych z danym poleceniem . Nazwa funkcji kończącej się na internalzdaje się sugerować, że użytkownicy Emacsa nie powinni używać ich w swoich plikach init, ale ta funkcja posiadająca ciąg dokumentów wydaje się sugerować coś innego. Każdy, kto rozważa użycie, where-is-internalpowinien najpierw sprawdzić, czy zamiast tego przemapowanie kluczy może osiągnąć swój cel.
Alternatywą dla znalezienia kluczy, które są powiązane z konkretnym poleceniem (np., forward-char) Jest substitute-command-keys(np (substitute-command-keys "\\[forward-char]").). Jest to szczególnie przydatne w przypadku większych tekstów.
where-is-internalsugeruje, że można z niej korzystać. Ponadto konwencjonalnie używamy formatu takiego jak where-is--internal(zwróć uwagę na podwójny myślnik) dla funkcji „prywatnych”.
-internaljest opisane tam: gnu.org/software/emacs/manual/html_node/elisp/… . Powinien być używany dla wewnętrznych funkcji C.
Stare pytanie, ale z korzyścią dla nowych czytelników jest kilka innych fajnych sposobów na zobaczenie przypisań klawiszy
M-x describe-bindingsWyświetla wszystkie aktualnie dostępne powiązania, użyj isearch, wystąp itp., Aby dobrze wykorzystać tę listę.
M-x describe-prefix-mapTo pokazuje wszystkie wiązania dostępne w bieżącym trybie, możesz używać bufora wyświetlania tak, jak każdego innego bufora Emacsa tylko do odczytu, na przykład możesz swobodnie wyszukiwać łańcuchy itp.
M-x describe-modeOprócz ogólnych informacji o aktualnym trybie, wyświetli również listę wszystkich dostępnych skrótów klawiszowych.
M-x describe-minor-modeZostaniesz poproszony o wprowadzenie nazwy trybu pomocniczego, a następnie zobaczysz informacje i przypisania klawiszy dla tego trybu pomocniczego.
UWAGA : Poniższe przykłady wykorzystują dodatkowe pakiety (dostępne w MELPA )
To pokazuje wiązania, zanim ich potrzebujesz. Wprowadź przedrostek, na przykład C-xlub, C-ca zostanie wyświetlona lista powiązań dostępnych w tym prefiksie.
Możesz również wyświetlić listę skrótów klawiszowych dostępnych w bieżącym trybie, używając:
M-x which-key-show-top-levelPrzydatne jest powiązanie which-key-show-top-levelz wybranym akordem klawiszowym, dzięki czemu można zobaczyć klawisze dostępne z dowolnego miejsca.
Na przykład C-s( isearch-forward) ma obszerną mapę klawiszy, która często jest nieznana. np. M-s ozaczyna occurużywać bieżącego ciągu wyszukiwania, nie wiedziałem o tym przez wiele lat używania Emacsa. Obecność w which-keypobliżu pomogła mi odkryć wiele rzadkich klejnotów w Emacs.
https://github.com/justbur/emacs-which-key
Klawisz przewodnika działa w taki sam sposób, jak which-keypolecałbym przyjrzeć się temu w celu porównania funkcji.