2012-04-28 32 views
2

我想为编程模式添加一些常用设置。例如:打开关键词,突出显示括号等。 所以我添加代码如下:Emacs 23是否支持prog-mode-hook?

(add-hook 'prog-mode-hook 'turn-on-watchwords)

这工作在Emacs 24,但Emacs的23不工作,我不知道,如果是别的东西丢失或Emacs 23本身就是这不工作。

如果Emacs 23不支持prog-mode-hook,如何添加编程模式的通用设置?

回答

6

prog-mode(因此与之相关的所有挂钩)在Emacs中加入24

您可以只需添加你的钩子全部通常使用的编程钩(诚然,这是一个模拟它(略)有点哈克):

(mapc (lambda (mode-hook) (add-hook mode-hook 'turn-on-watchwords)) 
     '(c-mode-common-hook tcl-mode-hook emacs-lisp-mode-hook 
      ruby-mode-hook java-mode-hook haskell-mode-hook 
      ess-mode-hook python-mode-hook sh-mode-hook)) 
+0

谢谢,这对我很有用。但它似乎是一个很长的钩子列表,以确保覆盖大多数编程模式。 – hbin 2012-04-28 02:33:57

+0

@hbin,你只需要列出你通常使用的那个,上面的列表是我的'.emacs'中的那个,所以如果你不使用Ruby或Haskell(例如),你可以从列表中删除它。 (另外,如果这解决了您的问题,请点击答案旁边的复选标记大纲以将其标记为“已接受”:)) – huon 2012-04-28 02:38:20

2

没有Emacs的,到目前为止,23层或24的用途prog-mode一致。 Emacs 24在lisp/progmodes/*。el中有51/85个包含“prog-mode”的文件,可以让您了解覆盖范围。也许在未来的版本中,您可以使用prog-mode-hook

无法为所有“编程”模式添加挂钩。保持您使用的钩子列表的@ dbaupp解决方案是可用的最佳解决方案。