Podstawową kwestią jest brak aktualnej mapy klawiszy per se. Istnieje globalna mapa klawiszy, która jest nadpisywana przez mapę klawiszy głównego trybu, która z kolei jest nadpisywana przez jeden lub kilka mniejszych trybów mapowania klawiszy (i mogą się na siebie nawzajem w pewien określony sposób, jestem tego pewien). Definiowanie nowego trybu głównego nadal pozostawi funkcjonowanie klawiszy trybu podrzędnego, a zdefiniowanie nowego trybu podrzędnego wpłynie tylko na wszystkie klawisze zdefiniowane w mapie klawiszy trybu pomocniczego.
Na przykład można zdefiniować tryb pomocniczy, który będzie wykonywał dowolne czynności, o ile aktywny jest tryb pomocniczy. Użytkownik definiuje nowy tryb pomocniczy, który ma własną mapę klawiszy. Będziesz wtedy musiał zdefiniować wszystkie swoje mapowania dla niego (np. N, p, itp.) I będziesz musiał również zdefiniować wszystkie klucze, które nie chciałbyś pracować, aby były powiązane z funkcją ignore
. To jest prawdziwy ból tego, remapowanie wszystkich innych kluczy. Tryb pomocniczy można łatwo włączać i wyłączać; to jest korzyść.
Definiowanie nowego trybu głównego byłoby łatwiejsze na pierwszy rzut oka, ponieważ pozwoli ci zastąpić więcej "bieżącej mapy klawiszy" w jednym ujęciu. Powinien zanotować bieżący tryb główny w lokalnej zmiennej buforowej, aby można go było przywrócić później, gdy tymczasowy tryb główny zostanie wyłączony. Ale nadal będziesz miał inne drobne tryby wtargnięcia do twojej mapy klawiszy, więc nie będzie ona "czysta".
To, co robię w tej sytuacji, to łatwiejszy prefiks! Dla rzeczy, których używam cały czas, przez cały dzień każdego dnia, osobiście daję im klucz funkcyjny (np. Mam odłożoną F1 jako klucz trybu Jabber). Dla mniej natychmiast przydatnych rzeczy, mam dwa inne klawisze funkcyjne odłożone na bok, F3 i F12 (jestem pewien, że był jakiś powód, dla którego wybrałem je dawno temu, ale już nie pamiętam dlaczego). F3 definiuje klucze, które są zawsze dostępne, niezależnie od trybu głównego. F12 definiuje klucze zależne od trybu głównego. Kilka przykładów:
Ustawiłem F3-m- jako przedrostek do przełączania trybów głównych (np. Przełączniki F3-mp na tryb cperl) i F3-M- jako prefiks dla mniejszych trybów (np. Przełączniki F3-Mv tryb podglądu). Są one zawsze dostępne, więc możesz zrobić coś takiego, jak powiązanie F3-g-, aby być prefiksem gud, i wpisać F3-g-p na poprzedni i tak dalej.
Mój klawisz F12 zależy od trybu. Tak więc, w trybie diodowym F12-e wywoła dired-nt-open-in-excel
na bieżącym pliku, aw trybie emacs-seplp F12-e wywoła elint-current-buffer
. Jakoś nigdy ich nie zdezorientowałem.
Jeśli potrzebujesz pomocy w definiowaniu takich map klawiszy, daj mi znać.
Czy mówisz o trybach drugorzędnych lub trybach głównych? Czy możesz podać konkretny przykład? –
Właściwie byłbym zadowolony z czegoś jeszcze mniej uporządkowanego: po prostu sposób na wprowadzenie prefiksu i dotyczy to wszystkich klawiszy, które wciskam, aż nacisnę specjalną serię klawiszy, aby wyjść z tego trybu. – fdr