2011-07-27 9 views
7

私は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-lispのを「評価する」とき、ということです

# START GENERATED TEXT 
blah blah abc more blah blah 
blah blah def more blah blah 
# END GENERATED TEXT 

または、さらに良い:コード、システムは、のようなもの(すなわち、パラメータabcその後、defでテキストを含む)に次のSTART GENERATED TEXTタグを探し、選択したコードを評価した結果を挿入します、いくつかのテンプレートエンジンPerl Text::Templateに似て、それはできる(マーカを使って)Perlで書かれたビットを区別し、結果をインラインで置き換えることができますが、この場合はもちろんemacs-lispをプログラミング言語として使用します。 (例えば、私はPerl Text :: Templateを使って私のPhDのPGF/TikZグラフィックスを生成しましたが、実際には素晴らしい組み合わせでしたが、外部プログラム(Perl)を使ってファイルをフィルタリングしてからラテックス)

答えて

0

あなたはCEDETの一部であり、また、Emacsのと合併した、SRecodeを見てみたいことがあります。

http://cedet.sourceforge.net/srecode.shtml

これは、コード生成を目的とした多くのですが、多分あなたはそれを適応させることができますあなたのニーズに?

3

あなたの要件はすぐにOrg Babelだと思っていましたが、ドキュメントの特定の領域内でマイナーモードとして使用できるかどうかはわかりません。あなたが組織のリストに尋ねるなら、誰かがあなたが望む行動を取る方法を教えることができるでしょう。

+0

+1 Org Babelが非常に興味深いです。私は実際にOrgを使用し、それがいくつかのマイナーモードに含めることができるかどうかを尋ねる素晴らしい提案です。 –

+0

組織のリストで回答が得られたら、ここに投稿して(それを受け入れてください!)、あなたがしたことをすべて見ることができるようにしてください。 – sanityinc

0

sanityincが述べたように、これは間違いなくorg babelが対象としているものです。すでにR、lisp、python、latexなどのいくつかの言語をサポートしています。組織の詳細については、hereを参照してください。

関連する問題