Sie können Ihre Funktion im org-Modus binden, indem Sie define-key
:
(define-key org-mode-map (kbd "C-c C-x C-z") 'my-function)
Es überschreibt alle globalen Bindungen und funktioniert nur in einem Puffer im Organisationsmodus.
Ich bin mit org-Modus und will die lokale Bindung außer Kraft zu setzen C-c C-x C-z
, um gebunden org-resolve-clocks
standardmäßig. Das Handbuch sagt
Wie in Lokale Keymaps beschrieben, können Hauptmodi und Nebenmodi lokale Keymaps definieren. ... Wenn Sie eines dieser Keymaps ändern möchten, müssen Sie den Modus-Hook verwenden (siehe Hooks).
Ich habe also diese Zeilen in meinem ~/.emacs
:
(global-set-key (kbd "C-c C-x C-SPC") 'my-function) (global-set-key (kbd "C-c C-x C-z") 'my-function) (add-hook 'org-mode-hook (lambda () (local-set-key (kbd "C-c C-x C-z") 'my-function)))
Die erste Zeile bindet einen ungebundenen Schlüssel an die Funktion. Die zweite Zeile bindet eine bereits im org-Modus gebundene Taste an die Funktion. Die restlichen Zeilen definieren den Haken.
Ich starte Emacs neu und beschreibe die Schlüssel. C-c C-x C-SPC
gebunden ist, an my-function
und C-c C-x C-z
wird auf den Standard gebunden org-resolve-clocks
in einem org Puffer und my-function
anderswo. Wenn ich den Bindungscode interaktiv in einem Organisationspuffer mit M-:
:
(local-set-key (kbd "C-c C-x C-z") 'my-function)
Dann ist der Schlüssel an my-function
den Standard gebunden .
Ich habe auch eine andere Antwort in diesem Thread ausprobiert, wie man wichtige Keybindings für den Major-Modus in Emacs setzt, und es schlug fehl:
(with-eval-after-load 'org-mode '(define-key org-mode-map (kbd "C-c C-x C-SPC") 'my-function) )
Ich verwende Emacs 25.3 (9.0).
Wie kann ich eine Bindung in einem Major-Modus überschreiben?
Sie können Ihre Funktion im org-Modus binden, indem Sie define-key
:
(define-key org-mode-map (kbd "C-c C-x C-z") 'my-function)
Es überschreibt alle globalen Bindungen und funktioniert nur in einem Puffer im Organisationsmodus.