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新手,求帮助!
慕桂英546537
浏览 583回答 2
2回答

小怪兽爱吃肉

不要用你那个在.emacs里面用(load"setup-latex")

SMILET

在setup-latex.el的末尾加上:(provide'setup-latex)因为你想require的东西先要provide。欲取先予嘛。另外,LaTex-mode是latex-mode的别名。C-hfRETLaTex-mode看LaTex-mode的帮助,可以看到LaTeX-modeisanaliasfor`latex-mode'in`tex-mode.el'.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript