GitHub - mineo/yatemplate: Simple file templates for Emacs with YASnippet
source link: https://github.com/mineo/yatemplate
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
YATemplate
Installation
Install this package from MELPA with M-x package-install RET yatemplate RET.
Description
This package bridges the gap between YASnippet and
auto-insert-mode. By populating auto-insert-alist with filenames and
automatically expanding their content after insertion by auto-insert-mode, it's
an easy way to create dynamic file templates. Simply call
yatemplate-fill-alist
somewhere in your Emacs initialization file to populate
auto-insert-alist
with filenames from yatemplate-dir
.
Each filename will be turned into a new element to push
onto
auto-insert-alist
. To guarantee a particular order, filenames must contain one
colon (":"). After collecting all the filenames in yatemplate-dir
, their names
will be sorted with string<
, then split on the colon. The first substring will
be discarded, which means it can be used to establish an ordering. The second
substring will be used as a regexp as the CONDITION of the element to push onto
auto-insert-alist
. The ACTION will be a vector of actions that first insert
the content of the template file and then expand the content of the buffer with
yatemplate-expand-yas-buffer
, which simply calls yas-expand-snippet
, so you
can use everything YASnippet offers in the template.
Note that a dollar sign $
will be added to the end of the regular expression
automatically because most of the template filenames will very likely be of the
form filename.extension
. If you want to specify a template filename where the
last letters are not the extension, add .*
at the end.
This means that if yatemplate-dir
looks like this:
.emacs.d/templates
├── 00:test_.*.py
└── 01:.*.py
yatemplate-fill-alist
will first push
(".*.py$" . ACTION)
onto
auto-insert-alist
and then ("test_.*.py$" . ACTION)
.
Of course, you will need to enable auto-insert-mode to have the snippet inserted and expanded into new files.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK