Erlang generic templates for vim (commands)
Vim script Python
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 23 commits ahead of marutha:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Erlang generic templates for vim


This plugin provides a quick access to Erlang templates, such as gen_server, get_event etc.

The default templates are ripped out of emacs.

This plugin requires your vim to be compiled with Python support.

You can customize this suite to your needs.

This plugin works well with pathogen ( Make sure you call #pathogen:helptags() to enjoy vim help pages for this plugin.


If you don't like the idea of having Python installed, there's a pure VimL fork here:


:ErlServer Loads gen_server template into current buffer.

:ErlFsm Loads gen_fsm template into current buffer.

:ErlStatem Loads gen_statem template into current buffer.

:ErlSupervisor Loads supervisor template into current buffer.

:ErlEvent Loads gen_event template into current buffer.

:ErlApplication Loads application template into current buffer.

:ErlTemplate [arg] Loads [arg] template into current buffer.


Templates are plain text files containing special placeholders that start with dollar sign.




Variables used are:

$basename Current buffer's filename without extension. Defaults to 'untitled' for an unnamed buffer.

$author Defaults to whoami if undefined

$company Defaults to $author if undefined

$fulldate Defaults to python's

$year Defaults to python's


Following variables can be overrided via .vimrc settings:

erl_author default: whoami

erl_company default: g:erl_author

erl_replace_buffer default: 0. If "1", will erase current buffer after a template insertion command is triggered.

erl_tpl_dir default: Plugin directory concatenated with "/templates". Allows you to use your own template directory. Note, that commands will raise errors, if hardcoded template files doesn't exist there.

Example .vimrc entries:

let g:erl_author="Herp Derp"

let g:erl_company="Me Gusta Inc"

let g:erl_replace_buffer=1

let g:erl_tpl_dir="/home/herp/erlang/templates"


Feel free to suggest any improvements or extensions at project's github: