Jeśli znam nazwę polecenia emacsa, mówi „goto-line”; co, jeśli chcę zapytać, czy istnieją jakieś sekwencje klawiszy powiązane z tym poleceniem?
I odwrotnie, biorąc pod uwagę sekwencję klawiszy, jak mogę znaleźć jej nazwę polecenia?
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
odpowiadaM-x where-is
.C-h k
jest równoważneM-x describe-key
.C-h f
jest równoważneM-x describe-function
.C-h v
jest równoważneM-x describe-variable
.C-h ?
jest równoważneM-x help-for-help
. Pamiętaj również, żef1
można użyć zamiastC-h
.C-h w
(lubF1-w
):where-is
RET jakaś nazwa polecenia RETRobi to, o co prosisz - wyświetla powiązane klucze bez dodatkowych informacji. :)
źródło
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. Funkcjakey-binding
jest tym, czegoC-h k
używa.zwraca polecenie powiązane z
C-h m
wyszukiwaniem we wszystkich bieżących mapach klawiszy. Funkcjalookup-key
wyszukuje w jednym układzie klawiszy: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ę nainternal
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
) Jestsubstitute-command-keys
(np(substitute-command-keys "\\[forward-char]")
.). Jest to szczególnie przydatne w przypadku większych tekstów.źródło
where-is-internal
sugeruje, że można z niej korzystać. Ponadto konwencjonalnie używamy formatu takiego jakwhere-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 )
Który klucz
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
zaczynaoccur
używać bieżącego ciągu wyszukiwania, nie wiedziałem o tym przez wiele lat używania Emacsa. Obecność wwhich-key
pobliżu pomogła mi odkryć wiele rzadkich klejnotów w Emacs.https://github.com/justbur/emacs-which-key
Klawisz przewodnika
Klawisz przewodnika działa w taki sam sposób, jak
which-key
polecałbym przyjrzeć się temu w celu porównania funkcji.https://github.com/kai2nenobu/guide-key
źródło