Erlang indentation and syntax for Vim
This is the Erlang indentation and syntax that is shipped with Vim (from Vim 7.4).
Clone this repository:
$ mkdir -p ~/.vim/bundle $ cd ~/.vim/bundle $ git clone https://github.com/vim-erlang/vim-erlang-runtime
Add the repository path to
Installing using vim-plug
- Install vim-plug using the instructions
Add vim-erlang-runtime to your plugin list in
.vimrcand re-source it:
'' Erlang Runtime Plug 'vim-erlang/vim-erlang-runtime'
Development and testing
This section is relevant only if you want to be involved in the development of the script.
The indentation script can be tested in the following way:
test_indent.erlin Vim from this directory. (
test_indent.erlalways shows how the Erlang code is indented by the script – not how it should be.)
- Press F1 to load the new indentation (
- Press F3 to reindent the current line. Press shift-F3 to print a log.
- Press F4 to reindent the current buffer.
- Press F5 to show the tokens of the current line.
- When the indentation scripts detects a syntax error in test mode (i.e. when it
was loaded with
helper.vim), it indents the line to column 40 instead of leaving it as it is. This behavior is useful for testing.
Tip: indentation from the command line
The following snippet re-indents all
src/*.?rl files using the indentation
shipped with Vim:
vim -ENn -u NONE \ -c 'filetype plugin indent on' \ -c 'set expandtab shiftwidth=4' \ -c 'args src/*.?rl' \ -c 'argdo silent execute "normal gg=G" | update' \ -c q
- This can be for example added to a Makefile as a "re-indent rule".
- You can use the
tabstopoptions to customize how to use space and tab characters. The command above uses only spaces, and one level of indentation is 4 spaces.
If you would like to use a different version of the indentation script from that one shipped in Vim (e.g. because you have Vim 7.3), then also add the following as the first command parameter:
-c ':set runtimepath^=~/.vim/bundle/vim-erlang-runtime/'