2012-06-16 28 views
2

我正在使用Emacs在JSF項目中編寫XHTML頁面,並且在每個XHTML文件的頭部必須添加的樣板代碼數量難以輸入,難看且出錯。俯臥。例如:Emacs中的XHTML/JSF樣板代碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:ui="http://java.sun.com/jsf/facelets"> 

什麼是處理這個問題的「emacs方法」?我已閱讀nXhtml mode,但尚未嘗試過,不知道它是否自動完成上面的樣板,還是隻提供更基本的XML檢查/完成語法。無論如何,我想首先評估更輕量級的替代品。

回答

2

搜索「模板emacs」。 https://www.google.com/search?q=template+engine+emacs

這是一個很好的調查:http://www.emacswiki.org/emacs/CategoryTemplates

我使用defaultcontent.el,它是該頁面上列出的選項之一。 Defaultcontent.el根據文件名上的模式匹配使用模板填充新文件。所有.html文件都可以獲得特定的模板。您可以將模板更高級的映射到文件; defaultcontent.el使用alist,你可以爲你喜歡的文件名指定任何正則表達式。

被放入新文件的模板可以動態地擴展各種東西,包括文件名,basefilename,日期/時間,環境變量。在更高級的場景中,模板可以運行您提供的elisp代碼。

這是yasnippet的一個很好的伴侶,我使用它來爲文件中的可選代碼片段。例如,我的基地.htm模板(由defaultcontent.el插入)不包含jquery的腳本引用。但我有一個jQuery的yasnippet,所以當我輸入(jQuery的[TAB]),我得到

<script type='text/javascript' 
     src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js'> 
</script> 

defaultcontent.el全面拓展使用find文件鉤並插入模板內容只有當一個文件最初創建。

我使用它幾乎所有的文件格式。