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
runtimepathin your.vimrc::set runtimepath^=~/.vim/bundle/vim-erlang-runtime/
- Copy
syntax/erlang.viminto~/.vim/syntax/. - Copy
indent/erlang.viminto~/.vim/indent/.
-
Install vim-plug using the instructions
-
Add vim-erlang-runtime to your plugin list in
.vimrcand re-source it:insert vim-erlang-runtime
'' Erlang Runtime Plug 'vim-erlang/vim-erlang-runtime'between
call plug#begin('~/.vim/plugged')and
call plug#end() -
Run
:PlugInstall
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:
- Copy
syntax/erlang.viminto~/syntax. - Open
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.) - Source
helper.vim(:source helper.vim) - Press F1 to load the new indentation (
indent/erlang.vim). - 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.
Note:
- When the indentation scripts detects a syntax error in test mode (i.e. when it
was loaded with
F1fromhelper.vim), it indents the line to column 40 instead of leaving it as it is. This behavior is useful for testing.
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 qNotes:
-
This can be for example added to a Makefile as a "re-indent rule".
-
You can use the
expandtab,shiftwidthandtabstopoptions 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/'