【问题标题】:Emacs Elisp Overriding Default ValueEmacs Elisp 覆盖默认值
【发布时间】:2017-07-08 13:09:38
【问题描述】:

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

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

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

【问题讨论】:

  • 您确定它将文件识别为乳胶文件吗?
  • 您使用哪种 LaTeX 模式? AUCTeX 使用LaTeX-mode-hook 而不是latex-mode-hook

标签: emacs elisp


【解决方案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
%在当前缓冲区中启用缩写模式

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

【讨论】:

  • 谢谢。 Emacs 已经识别了乳胶文件并应用了正确的模式。另外两个是我的。它仍然不起作用。也许这与我的特定 emacs 版本有关
  • @PaulMcVay 当我尝试这个钩子时,它在我的机器上运行良好。必须是版本差异...
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多