How I configure Vim to work with Elixir without much clutter


Some time ago someone suggested me to write article about how I have configured my Vim to work with Elixir, now there it is:

Comments are welcome.



Any reason why you don’t use Vim hotkeys on Spacemacs?

1 Like


Remember, kids… Pandajail is where pandas are sent when you use someone else’s dotfiles .

Spacemacs is just set of dotfiles that is created by other people. Your configuration should be yours and yours only. So in general you can count me as a human that do not like neither Spacemacs nor SpaceVim.

This is one of the reason. Another reason is that I started using Vim years ago (~7 I think) and it just fitted me and I do not see any reason to change it.

1 Like


Looks awesome, I think I’ll be using some of these plugins for my vim setup. The running repo sql one will fit nicely into my dev workflow.

Do you have an article on tmux too? I use tmux and vim.

1 Like


I do not use TMux since I moved all my “multiplexing” into NeoVim terminals.



You could use this generator
Remove plugins that you think that is useful



This one very much suits into rule:

Do not use other people’s dotfiles.

I just generated one and it is so much full of clutter that I cannot even. The minimal configuration for Vim and NeoVim for Elixir:

git clone ~/.local/share/pack/elixir/start/elixir
touch ~/.config/nvim/init.vim
cat ~/.vimrc <<EOF
let s:config_dir = exists('$XDG_CONFIG_DIR') ? $XDG_CONFIG_DIR : $HOME . '/.config'
let s:data_dir = exists('$XDG_DATA_HOME') ? $XDG_DATA_HOME : $HOME . '/.local/share'

exec 'set runtimepath^='.s:config_dir.'/nvim,'.s:data_dir.'/nvim/site'
exec 'set packpath^='.s:data_dir.'/nvim/site'

syntax on
filetype plugin indent on

set laststatus=2
set wildmenu

runtime init.vim

And everything is there. Anything more should be added only if you know what you are doing.



Just wanted to say thank you. I’ll be digging into this more over the next few days. I recently tried to spruce up my Vim config and get a better workflow going as I realised that I was doing a lot of tasks very mechanically or have got stuck in a rut doing things a certain way that’s less than optimal.

I had a look around for some direction but didn’t find much Elixir specific advice, so your post is very timely and very welcome!