Я видел разные движки шаблонов для 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...
Идея состоит в том, что, когда я "оцениваю" закомментированный код 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
Или, что еще лучше, какой-то шаблонизатор, похожий на Perl Text :: Template , который способен различать биты, написанные на Perl (с помощью маркеров), и подставлять результаты в строку, но в этом Конечно, в качестве языка программирования используется emacs-lisp. (Например, я использовал этот Perl Text :: Template для генерации графики PGF / TikZ моего доктора философии, и это была действительно хорошая комбинация, но мне пришлось использовать внешнюю программу (Perl), чтобы отфильтровать файлы перед подачей в LaTeX.)