2011-01-31 87 views
2

當我把這些在我的配置文件:Emacs的:鉤打開XML文件

(add-hook 'sgml-mode-hook (lambda() (message "SGML"))) 
(add-hook 'html-mode-hook (lambda() (message "HTML"))) 
(add-hook 'xml-mode-hook (lambda() (message "XML"))) 

當打開.html文件,它打印「SGML」和預期的「HTML」。 但是,當打開.xml文件時,沒有打印。

問題:那麼如何爲XML文件添加鉤子?

+1

在我的emacs(GNU Emacs的23.2.1在OS X),XML的默認主要模式被稱爲`nXML`,與關聯`nxml模式-hook`。也許`xml-mode`不是你的XML主模式嗎? – 2011-01-31 05:05:58

回答

5

你試過nxml模式代替,如:

(add-hook 'nxml-mode-hook (lambda() (message "XML"))) 
2

注意:此答案適用於Emacs 22及更早版本。對於Emacs 23+,請參閱接受的答案。

XML模式是SGML模式的別名。您可以測試,看看你在XML或SGML的變體是通過檢查變量sgml-xml-mode像這樣:

(add-hook 'sgml-mode-hook (lambda() (message (if sgml-xml-mode "XML" "SGML")))) 

模式在手動here記錄。

+1

nxml模式也可能踢。 – ocodo 2011-01-31 05:09:20