Minimalist, modular, commented, lazy-loading vim / neovim config framework
The major difficulties with dot vim configurations is they become too complex to debug, make too many opinions and are unfriendly to merging upstream changes.
The config scans all files with
.vim extension in the first first level
of these directories:
settings/- vim settings
(So, if you add a file
settings/hiworld.vim, it will always be loaded.)
Optionally, if you want package management:
plugins.d/- Plug package declarations
plugins.settings/- plugin settings
If you have a file ending with
.vim in plugins.d, Plug will be
installed on your behalf, as well as all
Plug packages in
Community bundle declarations and settings
are community settings you can decide to symbolic link or copy into your
personal settings in
plugins.settings/*.vim as you choose.
The added benefit is these Plug declarations, bundle settings and bundles are designed to degrade gracefully, lazily load depending on the system stack, etc. Pull requests are welcome to keep these continually improved, but they are entirely optional.
- Put all your bundle (addons you want to install and use in
plugins.d/*.vim(name any file you'd like) and it gets scanned in.
- Put all your settings files in
settings/*.vim(name any file you'd like) and it gets scanned in.
- Symlink community bundle configs from
contrib/, or customize yourself manually. See
- Lazy-loading vim plugins via Plug.
- Lazy-loading vim plugins via checking your systems stack
- Lazy-loading of plugin settings via
- Automated compilation of plugins (partial)
Hooks / Files
These conventions are derived from spf13. In order of sourcing:
~/.vimrc.before- ran before config
~/.gvimrc.local- only for gtk
- https://github.com/spf13/spf13-vim (Apache 2.0 license)
- https://github.com/jpalardy/dotfiles (MIT license) for
- see other thanks in the comments inside.