Kendi küçük modunuzu ve ana haritanızı tanımlayabilir ve diğer tüm modları (küçük + büyük) geçersiz kılabilirsiniz. İşte bu yüzden kendi küçük modumu yazmayı seçtim.
Anahtar ciltlemelerinizin tüm bağlantıları geçersiz kılma adımları:
- Kendi küçük modunuzu ve ana haritanızı aşağıda gösterildiği gibi tanımlayın.
- Küçük modunuzu global olarak etkinleştirin
(define-key my-mode-map (kbd "C-j") #'newline-and-indent)
Benzer şekilde, küçük modunuzda ayarlanan diğer anahtar bağlarınız, diğer modlardakileri geçersiz kılacaktır.
Küçük bir modun nasıl yazılacağı hakkında Christopher Wellons'un blog yazısını okumanı şiddetle tavsiye ederim . Bu blog ve birden nil
fazla ana ve küçük modda birden fazla anahtar bağlama ayarlamak zorunda olmanın sıkıntısı, kendime ait olan küçük modumu yazmak için bana ilham verdi.
Bu yaklaşımı kullanmanın en iyi yanı, anahtar bağlamaların emacs'ın varsayılan yapılandırmasında ne yaptığını kontrol etmek istediğinizde, sadece küçük modunuzu kapatmanızdır; daha sonra tekrar açın ve özel anahtar bağlantılarınızı geri alın.
;; 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/