Używam use-package
do zarządzania zainstalowanymi pakietami i bind-key
przypisywania akcji niestandardowym kluczom, które lubię.
Zastępuję większość domyślnych skrótów klawiszowych Emacsa (np. C-nStaje się M-k, C-pstaje się M-i), ale nie mam nic przeciwko innym trybom zastępującym mój schemat przypisywania klawiszy. Czasami chcę jednak, aby moje skróty klawiszowe trwały. Chcę mieć na M-kmyśli coś innego niż domyślny Gnus lub Hełm.
Jednak wszystkie one powodują konflikty podczas uruchamiania Emacsa, ponieważ nie mogę dodać powiązania do mapy klawiszy, jeśli nie istnieje (ponieważ use-package
czasami odkłada ładowanie pakietu). Na przykład następujące polecenia generują błędy (np. (void-variable helm-map)
), Ponieważ Helm i Gnus nie są jeszcze w pełni załadowane.
(bind-key "M-Y" 'helm-end-of-buffer helm-map)
(bind-key "M-k" 'helm-next-line helm-find-files-map)
(bind-key "M-s" 'other-window gnus-summary-mode-map)
Mam wszystkie moje use-package
wywołania w jednym pliku, a bind-key
niestandardowe skróty klawiszowe w innym pliku. Nie chcę wstawiać powiązań do use-package
wywołań, ponieważ być może chcę opublikować własny niestandardowy schemat przypisywania klawiszy jako samodzielny pakiet. Co zrobić, jeśli chcę, aby ktoś instalujący mój schemat miał również nadpisane lokalne skróty klawiszowe Helm i Gnus?
Jak zarządzać lokalnymi trybami bind-key
skrótów klawiszowych , aby wszystkie klucze były ustawione, nawet jeśli ostatnio ładowane są pakiety, a wszystkie ustawienia kluczy znajdują się w jednym pliku?
źródło
Ponieważ używasz już klucza powiązania, bezpośrednio z dokumentacji
bind-key.el
:Ostatni formularz ulega awarii, jeśli mapa klawiszy jest obecnie niezdefiniowana, ponieważ definicja pliku
some-other-mode-map
nie została jeszcze załadowana. Możesz więc umieścić to wuse-package
forsome-other-mode
(definiowanie pakietusome-other-mode-map
) lub używającwith-eval-after-load
:Inną alternatywą byłoby zdefiniowanie własnego trybu podrzędnego zawierającego wszystkie wiązania, których nie powinny zastępować główne tryby:
źródło