Qt obsługuje skróty klawiszowe w stylu Emacsa , jednak tylko dla maksymalnie czterech klawiszy. Aby wyjaśnić, dlaczego ten limit powinien zostać zwiększony, przydatne byłoby pokazanie przykładów skrótów klawiszowych w stylu Emacsa z jeszcze większą liczbą klawiszy. Czy są jakieś znane przykłady tego, a może nawet sposób programowego wyszukiwania długich sekwencji klawiszy zdefiniowanych w mapach klawiszy Emacsa?
edycja: Myślałem, że to powszechna wiedza, ale sekwencja klawiszy to zestaw kluczy wczytywanych przez read-key-sequence
. Spróbuj F1 k
kandydata i sprawdź, czy opisuje twoje polecenie, czy też niepowiązane z nim polecenie.
key-bindings
keymap
wasamasa
źródło
źródło
C-u 1 0 0 0 C-n
co to jest sześć klawiszy.F1 k C-u 1 0 0 0 C-n
i zobacz, żeC-u
jest to sekwencja klawiszy sama w sobie.Odpowiedzi:
Testowałem za pomocą następującego skryptu,
I najdłużej otrzymuję
.emacs.d
to,C-x c C-x r i
które jest jakimś poleceniem steru, a wraz zemacs -q
tym,C-x a i l
który uruchamia polecenieinverse-add-mode-abbrev
.źródło
C-x M-c M-b u t t e r f l y
:) Zapomniałem, że to zrobiłem ...where-is-internal
zdecydowanie dominuje tutaj czas procesora, ale nadal możesz z łatwością ogolić kilka cykli, destrukcyjnie przygotowując krótszą listę do dłuższej poprzez(setq keyseqs (nconc (where-is-internal sym nil nil t) keyseqs))
.M-x butterfly
? Po prostu związałem to z tym poleceniem dla zwiększenia autentyczności :)Nie mogę odpowiedzieć na pytanie, co może być najdłużej, ale tutaj jest kilka informacji, które mogą pomóc.
Mam kilka bibliotek, które udostępniają zestaw powiązanych poleceń powiązanych z klawiszami w mapie klawiszy, którą łączę z kluczem prefiksu.
Ponieważ nie chcę kooptować kluczy użytkownika itp., Zwykle wiążę taki klucz prefiksu pod, powiedzmy
C-x
lub, dlaother-window
poleceń, podC-x 4
(mapa klawiszyctl-x-4-map
).Te same uwagi dotyczą grup poleceń w takiej mapie klawiszy: czasami otrzymują własną mapę klawiszy. I tak dalej, rekurencyjnie.
Oczekuję, że przynajmniej niektórzy użytkownicy mogą chcieć ponownie powiązać takie mapy klawiszy (na dowolnym poziomie) z własnymi, krótszymi kluczami z prefiksem lub mogą chcieć powiązać określone polecenia z krótszymi sekwencjami klawiszy. Ale oczywiście nie chcę tego robić w samej bibliotece.
Oto przykład jednego z takich dość długich klawiszy:
C-x 4 j t . % *
(siedem naciśnięć klawiszy), który należy wykonać w poleceniuicicle-bookmark-file-this-dir-all-tags-regexp-other-window
w zakładce + .Anatomia:
W
C-x 4
kluczu prefiksu (ctl-x-4-map
).Na
j
klawiszu prefiksu, który jest dla wszystkich poleceń do przejścia do zakładki .Na
t
klawiszu prefiksu, który jest dla wszystkich poleceń przejścia do zakładek, które są w jakiś sposób oznaczone .Na
.
klawiszu prefiksu, który jest dla wszystkich poleceń przejścia do zakładek, które dotyczą plików w bieżącym katalogu, które są w jakiś sposób oznaczone .Na
%
kluczu przedrostka, który jest dla wszystkich poleceń do skoków do zakładek, które są dla rzeczy w bieżącym katalogu , które mają znaczniki , które pasują do wyrażenia regularnego , zostaniesz poproszony o.Na
*
klucz, który jest dla wszystkich poleceń do skoków do zakładek, które są dla rzeczy w bieżącym katalogu , które mają znaczniki , ALL które pasują do wyrażenia regularnego , zostaniesz poproszony o. (Dla kontrastu,C-x 4 j t . % +
dotyczy zakładek, których NIEKTÓRE znaczniki pasują do wyrażenia regularnego.)Wszystko to jest konwencjonalny w zakładki + (a niektóre z nich odpowiada konwencji DIRED, BTW):
j
służy do skoku poleceń,t
jest oznaczone ,.
jest dla bieżącej-katalogu ,%
jest dla regexp , i*
jest dla wszystkich (+
dla niektórych ).(Aha, i używając sexp @ mkcms, rozumiem
C-x 4 j t f % *
, który jest równie długi. Skrótyf
dla pliku . To jakC-x 4 j t . % *
, ale zakładki do uzupełnienia to wszystkie zakładki plików, nie tylko te dla plików w bieżącym katalogu (.
).)źródło
Magit
dodaje długie sekwencje, ponieważ pozwala przełączać opcje. Na przykład, gdy poprosisz o dziennik, możesz wybrać krótkie lub długie opcje, jeśli chcesz zdalnych gałęzi, czy nie, jeśli chcesz graficzne wyświetlanie gałęzi i tak dalej. Podstawowe żądanie dziennika to tylko kilka naciśnięć klawiszy zmagit-status
bufora, ale możesz dodać wiele innych.To samo dotyczy zatwierdzania, dwa naciśnięcia klawiszy dla podstawowego zatwierdzenia, ale wiele opcjonalnych dodatków.
Pytanie jest więc sprecyzowane, czy bierzesz pod uwagę tylko
stock
emacs (cokolwiek to oznacza)?źródło
F1 k
i zobacz, ile klawiszy można wpisać, dopóki nie opisuje polecenia.