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-map
na 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-h
z czymś innym w swoich menedżerach okien: C-h w
odpowiada M-x where-is
. C-h k
jest równoważne M-x describe-key
. C-h f
jest równoważne M-x describe-function
. C-h v
jest równoważne M-x describe-variable
. C-h ?
jest równoważne M-x help-for-help
. Pamiętaj również, że f1
moż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-binding
lub, lookup-key
która pobiera sekwencję klawiszy i zwraca jej powiązane polecenie. Funkcja key-binding
jest tym, czego C-h k
używa.
(key-binding (kbd "C-h m"))
zwraca polecenie powiązane z C-h m
wyszukiwaniem we wszystkich bieżących mapach klawiszy. Funkcja lookup-key
wyszukuje 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-internal
Prawdopodobnie 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 internal
zdaje 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-internal
powinien 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-internal
sugeruje, ż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”.
-internal
jest 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-bindings
Wyświetla wszystkie aktualnie dostępne powiązania, użyj isearch, wystąp itp., Aby dobrze wykorzystać tę listę.
M-x describe-prefix-map
To 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-mode
Oprócz ogólnych informacji o aktualnym trybie, wyświetli również listę wszystkich dostępnych skrótów klawiszowych.
M-x describe-minor-mode
Zostaniesz 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-x
lub, C-c
a 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-level
Przydatne jest powiązanie which-key-show-top-level
z 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 o
zaczyna occur
używać bieżącego ciągu wyszukiwania, nie wiedziałem o tym przez wiele lat używania Emacsa. Obecność w which-key
pobliż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-key
polecałbym przyjrzeć się temu w celu porównania funkcji.