Die*_*lla 7 lisp emacs templates template-engine elisp
我已经看到了Emacs的不同模板引擎(包括yasnippet),但我想要的是一个不同的野兽.在你写作的时候,大多数模板引擎都会帮助你.我想要的更像是"文本生成器"而不是打字保护程序.我即将尝试实现它,但只是提出问题,看看你是否可以给我提示实现类似的类似的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...
Run Code Online (Sandbox Code Playgroud)
我的想法是,当我"评估"评论的emacs-lisp代码时,系统将查找下一个START GENERATED TEXT标记,并插入评估所选代码的结果(即,包含带参数的文本abc然后def),类似于:
# START GENERATED TEXT
blah blah abc more blah blah
blah blah def more blah blah
# END GENERATED TEXT
Run Code Online (Sandbox Code Playgroud)
或者,更好的是,一些模板引擎类似于Perl Text :: Template,它能够区分用Perl编写的位(使用标记),并将结果替换为内联,但在本例中,使用emacs-lisp作为编程语言.(例如,我使用Perl Text :: Template生成我博士的PGF/TikZ图形,这真的是一个很好的组合,但我不得不使用外部程序(Perl)来过滤文件,然后再将它们送到胶乳.)
| 归档时间: |
|
| 查看次数: |
902 次 |
| 最近记录: |