A portable, modular Vim and Neovim configuration optimized for macOS and Linux.
+clipboard on macOS; uses xsel on LinuxRequired tools (validated via make check):
nvim (or vim)python3ctags (Universal Ctags)node, yarn, and npmgoplsOptional language servers (configured in coc-settings.json): solargraph (Ruby), bash-language-server (Bash).
curl https://vimfiles.diegolemos.net/install | bash
git clone git@github.com:dlresende/vimfiles.git ~/.vim
cd ~/.vim
make install
The leader key is , (let mapleader=",").
The full, auto-generated shortcut reference is maintained on the Project Wiki.
To export or view the cheat sheet locally, run:
make docs
vimrc acts as a dispatcher that sources configuration in the following order (note that load order is significant):
config/plug.vim — plugin declarations (vim-plug). Must come first.config/plugin/* — per-plugin configurations.config/basic.vim — general editor settings.config/bindings.vim — global key mappings.config/bindings/*.vim — per-plugin key mappings.Because config/bindings.vim is sourced after plugins load, a mapping defined there silently overrides a plugin’s own default mapping.
Other entry points:
coc-settings.json — language server configurationsftplugin/*.vim — filetype-specific settingsMakefile — setup, dependency checks, test targets, and doc generationTo verify the setup locally:
make check # verify required tools are present on PATH
make install # symlink configuration, install/update plugins
make test-nvim # run smoke tests and checkhealth in Neovim
make test-vim # run smoke tests in Vim
make test # run all tests
CI (.github/workflows/ci.yml) runs the Neovim and Vim test suites in parallel on pull requests.