This is my personal vim configuration that is shared among hosts. Maybe they’re useful to you too, or — better yet — you’ll spot and fix a bug!

Sample screenshot of configuration

It uses features introduced in version 8.2, but should work with later versions. It will not work with neovim, and that is unlikely to change in the near future.

If you want a rambling backstory, see the background document.

If you find any problems with the files in this repository please either file an issue, or drop me an mail. However, please do not report problems when using neovim, pull requests are fine though.


Do not blindly install this repository! It’ll likely break your current set up and may even eat your dog. That being said, if your dog doesn’t mean that much to you:

$ git clone --recursive ~/.vim
$ cd !$
$ ./  # Generate ninja build rules, see --help for options
$ ninja  # Build, or update, generated files

Scan over the generated .vim files and figure out what you wish to do with them. The choices are: run with it, override some of them with your own ~/.vim/vimrc, or — most likely — to simply cherry pick the parts you find least offensive.



Also see the glossary.

Vim files




I’d like to thank the following people who have contributed to vim-configs.


  • <your name here>

Bug reports

  • Delphine Beauchemin

  • Karl Ullmann


  • David Fearnley

  • Manjeet Singh

  • Nathan McGregor

If I’ve forgotten to include your name I wholeheartedly apologise. Just drop me a mail and I’ll update the list!


If you find any problems, bugs or just have a question about this package either file an issue or drop me a mail.

If you’ve found a bug please try to include a minimal testcase that reproduces the problem, or even better a patch that fixes it!