Czy można ustawić przypisania klawiszy specyficzne dla bufora?
Mam jeden z moich plików org:
# Local Variables:
# eval: (local-set-key (kbd "<f10>") 'some-custom-defun-specific-to-this-buffer)
# End:
Ale to wiązanie trwa również dla innych plików w trybie organizacji. Jeśli otworzę plik z innym głównym trybem, uruchomi się moje domyślne powiązanie klawiszy.
Wygląda na local-set-key
to, że ustawienie powiązań jest specyficzne dla trybu głównego, a nie specyficzne dla bufora.
Jak mogę mieć powiązania, które aktywują się tylko w określonym buforze?
key-bindings
keymap
file-local-variables
Kaushal Modi
źródło
źródło
local-unset-key
uzależniony odorg-mode-hook
może działać, jeśli zostanie wykonany przedLocal Variables:
sekcją.Local Variables:
Odpowiedzi:
Na zakończenie, oto odpowiedź, która poszerza mój komentarz. Definiuję tryb podrzędny z wymaganym klawiszem i przełączam go w wymaganym buforze za pomocą lokalnych zmiennych pliku.
Możesz przełączać go w niezbędnych plikach, ustawiając sekcję zmiennych lokalnych na końcu pliku w następujący sposób. Możesz także zmienić lub dodać skrót klawiszowy tutaj. Nadal będziesz musiał zdefiniować różne pomniejsze tryby dla każdego bufora, który odwzorowuje tę samą sekwencję klawiszy na różne polecenia.
źródło
eval-buffer: Symbol's value as variable is void: my-org-buffer-local-mode-map
kiedy próbuję to uruchomić(define-minor-mode my-org-buffer-local-mode "Minor mode to simulate buffer local keybindings." :init-value nil) (define-key my-org-buffer-local-mode-map (kbd "<f10>") 'some-custom-defun-specific-to-this-buffer)
:keymap
słowem kluczowym, sprawdź nullprogram.com/blog/2013/02/06Oto ogólny sposób ustawiania powiązań klawiszy specyficznych dla bufora.
temp-mode.el
irequire
na swoim koncieinit.el
.temp-mode
tryb pomocniczy i zdefiniuj mapę klawiszy trybu pomocniczego tylko w potrzebnych buforach.Umieść poniższy
Local Variables
fragment kodu w buforze, w którym chcesz powiązać klucz niestandardowy. Poniżej znajdują się przykładyorg-mode
plików.W buforze JEDEN
Jeśli jakiś inny bufor przedefiniuje to samo powiązanie klawiszy za pomocą,
W buforze DWA
wtedy nowe wiązanie stanie się skuteczne
M-x revert-buffer
.Tak zrobię, jeśli będę musiał bardzo często przełączać się między tymi dwoma buforami i jeśli będę musiał użyć F10powiązania w obu:
C-x C-s
(zapisz) i przełącz na bufor DWArevert-buffer
(odśwież powiązania), pracuj w buforze DWAC-x C-s
i przełącz na bufor JEDENrevert-buffer
(odśwież powiązania), pracuj w buforze JEDENC-x C-s
i przełącz na bufor DWAWolałbym jednak powiązać różne polecenia specyficzne dla bufora z różnymi kluczami.
Tymczasowy tryb pomocniczy
źródło