在 Emacs 里,保证自己的按键设置一直生效的办法是自定义一个 minor mode。因为在 global-set-key 里改的话会被其他 major/minor mode 覆盖,去把那些 major/minor 都改了的话则又麻烦又混乱,所以自己定义一个 minor mode 是最好的办法。

自定义 minor mode 还有一个好处是可以方便地关闭自己的定义,回复默认设置。

办法来自 http://stackoverflow.com/a/683575/802678

(defvar my-keys-minor-mode-map (make-keymap) “my-keys-minor-mode keymap.”)

(define-key my-keys-minor-mode-map (kbd “C-i“) ‘some-function)

(define-minor-mode my-keys-minor-mode
“A minor mode so that my key settings override annoying major modes.”
t ” my-keys” ‘my-keys-minor-mode-map)

(my-keys-minor-mode 1)

红色部分改成你要定义的快捷键及其相应功能。如果有多个快捷键要定义,就把这行语句重复几遍,分别修改红色部分。

把这段话放在 .emacs 文件里,重启 Emacs 即可。