A modular vim configuration

This is my personal vim configuration that is partly inspired by SpaceVim. It is compatible to neovim and (g)vim (version 8 or higher). The configuration is split up into multiple files such that personal customization is separated from boilerplate code.


Simply clone this repository into ~/.vim and invoke install.sh therein. The install script just creates symlinks to vim/gvim/neovim configuration files and directories.

git clone https://git.sthu.org/repos/vimconf.git ~/.vim

The install file also checks requirements for the configuration and the plugins added:

  • python3 support for vim/gvim
  • neovim python3 module
  • aspell

Specialization for local machines

I personally would like to have the same vim configuration on all my accounts. Still, on certain machines I would like to personalize and specialize the configuration. The following files are read if existent:

  • plugins-local.vim
  • macros-local.vim
  • keymaps-local.vim
  • init-local.vim

For all four example files are shipped with the repository.

This vim configuration uses the well designed and popular gruvbox colorscheme. In case you use mutt as mail client and vim for composing mails then you may find my mutt gruvbox colorscheme interesting.


The start screen provided by startify. On the left the window shown by the command :PlugUpdate to update all plugins asynchronously using Plug:

Start screen and plugin updater

C and Python programming with NERDTree on the left with NERDtree git plugin and Tagbar on the right. Neomake shows an flake8 error on the cursorline at line 18 of utils/echorec.py. The tags file is automatically generated by gutentags and the current working directory of vim is automatically changed to the git root by rooter. A git diff indicated by plus, minus, and changed signs provided by signfiy:

C and Python

C++ programming with git blame (:Gblame) by fugitive on the left and semantic autocompletion by vim-clang:

C++ programming