Sie können Ihren eigenen Nebenmodus und seine Tastenbelegung definieren und alle anderen Modi (Moll + Dur) überschreiben. Genau deshalb habe ich mich entschieden, meinen eigenen Nebenmodus zu schreiben.
Mit den folgenden Schritten können Sie festlegen, dass Ihre Tastenkombinationen alle Verknüpfungen überschreiben:
- Definieren Sie Ihren eigenen Nebenmodus und Ihre eigene Tastenbelegung wie unten gezeigt.
- Aktivieren Sie Ihren Nebenmodus global
(define-key my-mode-map (kbd "C-j") #'newline-and-indent)
In ähnlicher Weise überschreiben Ihre anderen in Ihrem Nebenmodus festgelegten Tastenbelegungen die in anderen Modi.
Ich empfehle dringend, den Blog-Beitrag von Christopher Wellons zu lesen, in dem erklärt wird, wie man einen Nebenmodus schreibt. Dieser Blog und das Ärgernis, mehrere Tastenkombinationen nil
in mehreren Haupt- und Nebenmodi festlegen zu müssen, haben mich dazu inspiriert, meinen eigenen Nebenmodus zu schreiben.
Der beste Teil dieser Vorgehensweise ist, dass Sie, wenn Sie überprüfen möchten, wie die Tastenkombinationen in der Standardkonfiguration von emacs funktionieren, einfach den Nebenmodus deaktivieren. Sie schalten es dann wieder ein und Sie erhalten Ihre benutzerdefinierten Tastenkombinationen zurück.
;; Main use is to have my key bindings have the highest priority
;; https://github.com/kaushalmodi/.emacs.d/blob/master/elisp/modi-mode.el
(defvar my-mode-map (make-sparse-keymap)
"Keymap for `my-mode'.")
;;;###autoload
(define-minor-mode my-mode
"A minor mode so that my key settings override annoying major modes."
;; If init-value is not set to t, this mode does not get enabled in
;; `fundamental-mode' buffers even after doing \"(global-my-mode 1)\".
;; More info: http://emacs.stackexchange.com/q/16693/115
:init-value t
:lighter " my-mode"
:keymap my-mode-map)
;;;###autoload
(define-globalized-minor-mode global-my-mode my-mode my-mode)
;; https://github.com/jwiegley/use-package/blob/master/bind-key.el
;; The keymaps in `emulation-mode-map-alists' take precedence over
;; `minor-mode-map-alist'
(add-to-list 'emulation-mode-map-alists `((my-mode . ,my-mode-map)))
;; Turn off the minor mode in the minibuffer
(defun turn-off-my-mode ()
"Turn off my-mode."
(my-mode -1))
(add-hook 'minibuffer-setup-hook #'turn-off-my-mode)
(provide 'my-mode)
;; Minor mode tutorial: http://nullprogram.com/blog/2013/02/06/