Author: | Adrian Perez <[email protected]> |
---|
This is a simple plugin for Vim that will allow you to have a set of templates for certain file types. It is useful to add boilerplate code like guards in C/C++ headers, or license disclaimers.
The easiest way to install the plugin is to install it as a bundle:
- Get and install pathogen.vim. You can skip this step if you already have it installed.
cd ~/.vim/bundle
git clone git://github.com/aperezdc/vim-template.git
In order to update the plugin, go to the its bundle directory and use Git to update it:
cd ~/.vim/bundle/vim-template
git pull
In your vimrc you can put:
let g:templates_plugin_loaded = 1
to skip loading of this plugin.let g:templates_no_autocmd = 1
to disable automatic insertion of template in new files.
There are a number of options to use a template:
Create a new file giving it a name. The suffix will be used to determine which template to use. E.g:
$ vim foo.c
In a buffer, use
:Template foo
to load the template that would be loaded for file with suffixfoo
. E.g. from within Vim::Template c
The algorithm to search for templates works like this:
- A file named
=template.<suffix>
in the current directory. If not found, goto (2). - Go up a directory and goto (1), if not possible, goto (3).
- Try to use the
template.<suffix>
file supplied with the plugin.
The following variables will be expanded in templates:
%DAY%
,%YEAR%
,%MONTH%
- Numerical day of the month, year and month.
%DATE%
- Date in
YYYY-mm-dd
format %TIME%
- Time in
HH:MM
format %FDATE
- Full date (date + time), in
YYYY-mm-dd HH:MM
format. %FILE%
- File name, without extension.
%FFILE%
- File name, with extension.
%EXT%
- File extension.
%MAIL%
- Current user's e-mail address. May be overriden by defining
g:email
. %USER%
- Current logged-in user name. May be overriden by defining
g:username
. %HOST%
- Host name.
%GUARD%
- A string with alphanumeric characters and underscores, suitable for use in proprocessor guards for C/C++/Objective-C header files.
%HERE%
- Expands to nothing, but ensures that the cursor will be placed in its position after expanding the template.