2012-04-28 76 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解決方案是可用的最佳解決方案。