覆盖主要模式的自动加载

时间:2014-02-28 08:09:53

标签: emacs major-mode

我想为具有如下特定名称的文件设置自动模式:

(add-to-list 'auto-mode-alist '("\\particular-file-name\\'" . some-major-mode))

这似乎有效,但是当同一个文件名有另一个自动模式预设时,预设的一个似乎有优先权,我的设置被忽略。如何覆盖或禁用预设?特别是,我希望所有名为config的文件都具有某种主要模式,但Conf[Unix]模式似乎优先于我的设置。

2 个答案:

答案 0 :(得分:1)

可能由于

而发生
;;;###autoload
(add-to-list 'auto-mode-alist '(...))

在major-mode el文件中。自动加载说明在~/.emacs之后进行评估。

您可以尝试在after-init-hook

中加载您的设置
(add-hook 'after-init-hook
      (function (lambda()
          (add-to-list 'auto-mode-alist '(...)))))

;;;###autoload用户追加他们的条目auto-mode-list(设置add-to-list APPEND 选项)时,可能会更好。但这似乎并不常见。

答案 1 :(得分:0)

你的正则表达式中有一个错误,它与文件名(“config”)不匹配正确的正则表达式

1)如果要匹配名为“config”的文件

"config\\'"

2)如果要匹配扩展名为“.config”的文件

"\\.config\\'"

如果您想知道\'匹配字符串的结尾。在正则表达式中,字符串\\会转换为正则表达式中的\