emacs里面hook的问题


我在 init.el 里面写了一句:

(add-hook 'latex-mode-hook
               (lambda ()
                 (require 'setup-latex)))

然后 setup-latex.el 里面写了一些设置:

(add-hook 'LaTeX-mode-hook 'auto-fill-mode)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
(add-hook 'LaTeX-mode-hook 'flyspell-mode)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
...

问题就是:第一次打开 .tex 文件的时候 setup-latex.el 里面那些配置没有生效,要关闭文件再重新打开文件(即第二次及以后打开文件)才会生效。我的理解就是, add-hook 的时候如果对应的 mode 应该打开了的话这些 hook 就不会生效了?要下次打开这个 mode 才有效?

当然,如果把 setup-latex.el 里面的配置直接复制到 init.el 代替里面的 lambda 当然是没有问题的。但我不想emacs启动的时候就eval这些配置。

另外,我想问一下 latex-mode LaTeX-mode latex-mode-hook LaTeX-mode-hook 是什么关系。Emacs新手,求帮助!

emacs lisp

Nelthon 10 years, 8 months ago

不要用你那个

在.emacs里面用

(load "setup-latex")
秒速500米 answered 10 years, 8 months ago

Your Answer