Emacs Elisp 覆盖默认值

Emacs Elisp Overriding Default Value

我有几个缩写定义了我在任何地方都可以访问,除了乳胶模式。我定义了

(setq-default abbrev-mode t)
(add-hook 'latex-mode-hook (lambda () (abbrev-mode -1)))

但是每当我打开一个乳胶文件时,它仍然启用了缩写模式。怎么回事?

以前从未使用过乳胶,但对我来说以下工作正常:

(setq auto-mode-alist (cons '("\.lat\'" . latex-mode) auto-mode-alist))
(setq-default abbrev-mode t)
(add-hook 'latex-mode-hook (lambda () (abbrev-mode -1)))

M-x abbrev-mode
%Abbrev 模式在当前缓冲区中启用

请确保 emacs 将您的文件识别为乳胶文件,我写的第一行应该可以解决问题。

原因是 AUCTex 使用 LaTeX-mode-hook。感谢 stefan 在评论中指出这一点