This is my vimrc. There are many like it, but this one is mine. My vimrc is my best friend. It is my life. I must master it as I must master my life. Without me, my vimrc is useless. Without my vimrc, I am useless. Feel free to browse my configuration, but keep in my mind that
The need to convert my config to Lua finally presented itself in requiring modern plugin support for development in Elixir. The idea is to keep my "old" vimrc as the default until I'm comfortable enough to switch.
In order to keep both versions, I have opted to use a new config namespace for
the Lua version (config/dvim
). This way I can keep the old vimrc (config/nvim
) as a default (for now!).
Installation will attempt to create an executable in ~/.local/bin/dvim
. Provided ~/.local/bin
is in your path, you can now start Neovim with dvim
and it will use the Lua configuration.
When the time will come to switch defaults, I'll probably move the "old" version
to something like ~/.local/bin/ovim
(for "old vim") and let the Lua version
use the default nvim
config namespace.
git clone git@github.com:davelens/dotvim.git ~/.dotvim
cd ~/.dotvim && ./install.sh
cd ~/.dotvim && ./uninstall.sh
As of march 2020 I created a separate changelog for my .vimrc which I'll attempt to maintain, in order to explain some of my reasoning to my future self.
In september 2019 I made the switch to Neovim with its release of 0.4. Mostly because I was dealing with large files at the time. In Rails, files like i18n files or data logs are so much more responsive in neovim compared to stock Vim.
Thankfully, both Vim and Neovim are mostly backwards compatible, and I try to do the same with my vimrc.
Much like yourself, I use a plethora of tpope's plugins, and a handful of others. If you look at my plugin configuration file you'll see I'm a big fan of plugins that do their job with little to no configuration, but enable plenty of experimentation. fzf is a prime example of this.
My plugin manager of choice is vim-plug. Lightweight, with a good DSL.
Vim will use YouCompleteMe (YCM for short), a plugin that requires a pre-compiled component. See their installation instructions to get this sorted.
If you're on a version of macos lower than 10.10, chances are that the YCM component failed to compile. I got this fixed with a helpful SO answer.
With the advent of Microsoft's LSP I've been on the fence to set one up for Ruby and JavaScript, though I haven't taken the time to do this properly yet.
Neovim will use coc.nvim for now. I'm not entirely convinced of its merit yet (I get the sense it's too bloated for my tastes), but it sports easy configuration. The alternative would be to use ALE along with Deoplete + LanguageClient-neovim. As for an LSP server for Ruby, I've gotten the best results so far with Solargraph.
If you're on macos, my plugin configuration file will attempt to automatically download a patched Droid Sans Mono
font
that includes Powerline icons. If your statusline shows questionmarks instead of
specific icons, you'll need to configure your terminal to use a Powerline font
as the non-ASCII font.
If you don't wish to make use of the fancy powerline icons, comment out the following line in configurations.vim.
let g:airline_powerline_fonts = 1