#+TITLE: Templates layer * Table of Contents :TOC_4_gh:noexport: - [[#description][Description]] - [[#install][Install]] - [[#configuration][Configuration]] - [[#default-insertions][Default insertions]] - [[#querying][Querying]] * Description This layer provides templates to Spacemacs. A template consists of text that is automatically inserted into a new file when it is opened. This is done via [[https://github.com/mineo/yatemplate][yatemplate]], which leverages [[https://github.com/joaotavora/yasnippet][yasnippet]]. * Install To use this configuration layer, add it to your =~/.spacemacs=. You will need to add =templates= to the existing =dotspacemacs-configuration-layers= list in this file. * Configuration The templates are collected from files in the directory specified by =templates-private-directory=, defaulting to =~/.emacs.d/private/templates= if unset. For example, to set it to somewhere else: #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '((templates :variables templates-private-directory "~/.spacemacs.d/templates"))) #+END_SRC Each file in this directory must be of the form =XXX:regexp= where =regexp= is a regular expression that will be matched against filenames. The prefix =XXX= can be used to enforce an ordering (templates that come first will have priority). It is not part of the final regexp. Therefore, more specific templates should come first. For example, #+BEGIN_SRC 00:test_*.py 01:.*.py #+END_SRC See the [[https://github.com/mineo/yatemplate][yatemplate]] documentation for specifics. Full yasnippet syntax is supported, so consult the [[http://joaotavora.github.io/yasnippet/snippet-development.html][yasnippet]] documentation for details. ** Default insertions Note that Emacs ships with some default templates. If these are not to your liking, set the layer variable =templates-use-defaults= to =nil=. #+BEGIN_SRC emacs-lisp (setq-default dotspacemacs-configuration-layers '((templates :variables templates-use-defaults nil))) #+END_SRC ** Querying To disable the automatic querying each time a new file is opened, set =auto-insert-query= to =nil=. #+BEGIN_SRC emacs-lisp (setq auto-insert-query nil) #+END_SRC