Who are all the Vim users around here?

vim user here

Vim is the best. Config: GitHub - yevhene/.vim: My vim config.

… another vim user checking in. I use a few Elixir bundles to improve the experience, including the Elixir LS … it isn’t perfect, though, and leaves quite a bit to be desired in terms of ergonomics and speed. Any and all QoL improvements there are very much welcome :slight_smile:

@knewter got me into vim back around 2010 or so. since then, cli-life is the only way, for me. i’m quite obsessive about my dotfiles: GitHub - megalithic/dotfiles: dotfilery, configuration, environment settings, automation, etc.

I can’t stand autocomplete with vim, so I’ve found FZF + ripgrep + bat to be an indispensable combo! It is fast quite pretty. Using:

Plugin 'junegunn/fzf.vim'
Plugin 'junegunn/fzf'

let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.9 } }

let $FZF_DEFAULT_OPTS="--ansi --preview-window 'up:60%' --layout reverse --margin=1,4 --preview 'bat --color=always --style=header,grid --line-range :300 {}'"

command! -bang -nargs=* Rg
  \ call fzf#vim#grep(
  \   'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1, <bang>0)

let g:rg_command = '
  \ rg --column --line-number --no-heading --fixed-strings --ignore-case --no-ignore --hidden --follow --color "always"
  \ -g "Makefile"
  \ -g "!{.git,node_modules,vendor,*.beam,*_build}/*" '

command! -bang -nargs=* F call fzf#vim#grep(g:rg_command .shellescape(<q-args>), 1, fzf#vim#with_preview(), <bang>0)

" Usage: :F text_to_search

Adopted from here

VIM mostly, intellij-rust sometimes as well.

Why use autocomplete if you can use just completion? And you can then use Ctags with it (or language server) and make it quite handy.


Neovim for all stuff, even Clojure these days.

Elixir LSP works very well, but only Ctags is really good enough.

1 Like

vim fulltime here.

I don’t really use many plugins, I use tabnine, vim-elixir and auto_mkdir2.

I use space for my leader and fzf for file search.

vim-adventurous for my colour scheme :slight_smile:

1 Like

Small tip to run mix test under cursor without any plugins. On .vimrc:

let s:term_buf_nr = -1

function! s:RunMixFile() abort
    if s:term_buf_nr == -1
        execute 'terminal mix test % ' . '--exclude test --include line:'. line('.') "
        let s:term_buf_nr = bufnr("$")
            execute "bdelete! " . s:term_buf_nr
        let s:term_buf_nr = -1
        call <SID>RunMixFile()

nnoremap <silent> <Leader>t :call <SID>RunMixFile()<CR>

Leader-t opens a terminal window and run the current test. And it’s easy to change to run the whole file.


I’ve been using neovim for the past few years. GitHub - samgranieri/neovim: Sam's NeoVim config

Neovim 0.5.0 has released, with native LSP support


vim + tmux user here! Been updating my vimrc little by little for just over 6 years now :smiley:

Has anyone gotten nvim-treesitter-textobjects working with Elixir?

Would anyone like to create a Vim / Neovim wiki like we have for other editors? :blush:

These wikis are actually a great way to get more people to use (or try) your favourite editor :003:


Starting point: How to Set Up Neovim for Elixir Development | Mitchell Hanberg


have u tried Nova?

1 Like

I defected to VSCode but am looking to return, the only thing stopping me is I don’t have / want to spend a large amount of time getting vim setup.

1 Like

Same!! What I loved about MacVim is that it’s such an easy Vim to get into, you just install it then install Janus and you’re pretty much done. From my blog:


brew install MacVim

If you want to use Janus, it can be installed by running this in terminal:

curl -L https://bit.ly/janus-bootstrap | bash

vim ~/.gvimrc.after

In it paste:

color elixify
set guifont=Monaco:h12
let g:NERDTreeWinPos = "right"
set guioptions-=T " Removes top toolbar
set guioptions-=r " Removes right hand scroll bar
set go-=L " Removes left hand scroll bar
autocmd User Rails let b:surround_{char2nr('-')} = "<% \r %>" " displays <% %> correctly
:set cpoptions+=$ " puts a $ marker for the end of words/lines in cw/c$ commands

Then in terminal, to give it some breathing space at the top do:

defaults write org.vim.MacVim MMTextInsetTop ‘5’

To install the Elixify theme download from here and follow the instructions for MacVim.

mkdir ~/.vim/colors
cd ~/.vim/colors
open .
#copy Elixify.vim there

Don’t think Janus includes any LS support though.

Looks like a great starting point Bart - are you volunteering? :lol:

I downloaded it a little while ago but didn’t like how it kept wanting to dial out. Have you tried it? What do you think of it?

This video is making me want to stick it out with Doom - I quite liked Spacemacs just didn’t like how ‘slow’ it felt… maybe it’s worth putting up with…

1 Like
nmap <Leader>i i\|> IO.inspect(label: "")<ESC>hi
imap <Leader>i \|> IO.inspect(label: "")<ESC>hi

This is handy to debug. It finishes on insert mode, in between the "", ready to type the label.

1 Like