比如下面这个配置
(eval-after-load 'tex-mode
'(define-key latex-mode-map (kbd ", ff") #'(lambda () (interactive) (insert "\begin{align*}\n\n\end{align*}"))))
只有放在 .emacs.d/init.el里才生效。
而我如果在init.el里 (require 'init-key), 再去init-key.el里写下这个配置 最后加上(provide 'init-key), 这个latex的快捷键配置却没用
abcbc
2
define-key
应该放在相应的mode-hook里面吧。eval-after-load
只会在tex-mode
feature加载的时候执行一次,所以有可能define-key
只在头一次打开tex文件触发加载tex-mode
的时候执行,接下来打开tex文件都不会被执行。
有可能是你的 define-key
执行的时候,变量 latex-mode-map
的值不是将来 latex-mode
用的 keymap
对象。所以就像 @abcbc 说的,把 define-key
放在 latex-mode-hook
里试试。
1 个赞
define-key包到lambda函数里或者使用with-eval-after-load