Yesterday I installed LanguageClient-neovim for NeoVim.

This tool adds Language Server Protocol support for NeoVim (or Vim8).

It helps with autocompletion, code formatting, code definitions, and offers other features as well.

LanguageClient-neovim Installation

With minpac:

call minpac#add('autozimu/LanguageClient-neovim',
          {'rev': 'next',
           'do': '!bash'})

In Neovim, run the following command afterwards:


elixir-ls Installation

You have to install a language server for each language you want to support and then configure the plugin.

For Elixir, you can check my previous blog post on Developing with Elixir in Vim.

$ git clone
$ cd elixir-ls
$ mix deps.get
$ mix compile
$ MIX_ENV=prod mix elixir_ls.release

This creates a folder with an executable, i.e., release/

(For Windows, use .bat.)


This has to go into your .vimrc:

set hidden

let g:LanguageClient_serverCommands = {
\ 'elixir': ['~/<>],
\ }

nnoremap <F5> :call LanguageClient_contextMenu()<CR>
" Or map each action separately
nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR>
nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
nnoremap <silent> <F2> :call LanguageClient#textDocument_rename()<CR>

Further Reading