How to set up Vim for elixir?

I am trying to adopt a workflow for elixir using Vim and tmux but I do have some problems with elixir code completion and most importantly “go to definition”. Some times code completion doesnt work and some times “go to definition” throws errors.

I am using elixir-editors/vim-elixir and slashmili/alchemist.vim with Shougo/deoplete.nvim

For example in this file

Towards the middle it has a line conn = build_conn() |> auth_user(user) and I want to jump to the definition of auth_user which is a private function defined in the same file.

With <Ctrl+]>, even after I compiled the project, in vim I get

alchemist.vim: failed with message error:/home/voger/.vim/plugged/alchemist.vim/elixi
r_sense/lib/elixir_sense/core/ast.ex:19: module PlateSlateWeb.ConnCase is not loaded
and could not be found
E426: tag not found: auth_user

while spacemacs jumps happily to the definition.

Here is my .vimrc.

Is there something I should configure differently to improve elixir experience in vim?

3 Likes

https://github.com/mmorearty/elixir-ctags This one did the trick for me.

2 Likes

@kaareltinn
Thanks. Indeed it works much smoother now.

Also I changed deoplete with youcompleteme. I will see how it goes.

P.S.: Any other tips/advice are welcome :smiley: