我見過不同的Emacs模板引擎(包括yasnippet),但我想要的是一個不同的野獸。大部分模板引擎都在您寫作時助手。我想要的更多是一個「文本生成器」,而不是一個打字保存器。我即將嘗試實現它,但只是提出問題,看看您是否可以給我提示實現類似的emacs包。用於Emacs的模板引擎?
總結一下,我想要的是在文檔內部(在給定語言或文本格式的註釋內)內嵌emacs-lisp代碼以在標記內生成文本並使用任何組合鍵來更新它。例如,假設我要產生一些LaTeX的代碼是有點長,重複性的,但我可以用一些變量參數:
... rest of the normal text...
# (deftemplate my-repetitive-latex-code (parameter)
# ("blah blah" parameter "more blah blah")
#
# (defvar *latex-code-parameters* '("abc" "def"))
#
# (apply-template #'my-repetitive-latex-code *latex-code-paramters*)
#
# START GENERATED TEXT
# END GENERATED TEXT
... rest of the normal text...
的想法是,當我「評價」的評價的Emacs口齒不清代碼,系統會尋找下一個START GENERATED TEXT
標籤,並插入評估所選代碼的結果(即,包括與參數abc
然後def
文本),喜歡的東西:
# START GENERATED TEXT
blah blah abc more blah blah
blah blah def more blah blah
# END GENERATED TEXT
,或者甚至更好,一些類似於Perl Text::Template的模板引擎,即能夠區分用Perl編寫的位(使用標記),並以內聯方式替換結果,但在當前情況下,使用emacs-lisp作爲編程語言。 (例如,我使用Perl Text :: Template來生成我的PhD的PGF/TikZ圖形,它確實是一個很好的組合,但我必須使用外部程序(Perl)來過濾文件才能饋送膠乳)
+1非常有趣的是Org Babel。我實際上使用Org,並提出詢問是否可以包含在某些次要模式中的建議。 –
如果您在組織列表中獲得答案,請在此處張貼(並接受它!),以便我們都可以看到您做了什麼。 – sanityinc