在Emacs中使用主要模式进入次要模式

时间:2011-09-14 18:49:45

标签: emacs q

此问题可能与this question重复,但我无法在我的emacs中正常使用以下内容。

每当我进入主要模式mlint-mode时,我都会尝试进入次要模式matlab-mode(这两种模式都可在their SourceForge page处获得)。我的.emacs文件中有以下内容:

(add-hook 'matlab-mode-hook
      (function (lambda()
                  (mlint-mode))))

看起来像我上面链接的问题的答案。打开.m文件时,出现以下错误:

  

文件模式指定错误:(void-function mlint-mode)

当我打开mlint-mode文件时,有人可以帮助我帮助我编写正确的钩子以输入.m吗? FWIW,我正在运行emacs 23.1.50.1。

1 个答案:

答案 0 :(得分:10)

我认为正确的名称是mlint-minor-mode。另外,请记住确保Emacs知道所有matlab内容,这可以使用:

完成
(require 'matlab-load)

作为旁注,在钩子中使用lambda函数通常是个坏主意。如果你检查钩子的值,你会看到很多不相关的东西。此外,如果您修改lambda表达式并重新添加它,旧版本和新版本都将处于挂钩状态。

相反,您可以执行以下操作:

(defun my-matlab-hook ()
   (mlint-minor-mode 1))
(add-hook 'matlab-mode-hook 'my-matlab-hook)

“1”确保打开mlint模式,或者如果先前启用则保持打开状态。