I love Vim, and I also love modifying it to be more convenient and efficient. So I name it "ivim"! Welcome to contribute to ivim.
479
stars
390
commits
Vim Script
primary language
Apr 18, 2026
updated
An easy and customizable Vim/Neovim setup with a modern Neovim path and legacy Vim paths in one repository.
_ _
(_) __(_)___ ___
/ / | / / / __ `__ \
/ /| |/ / / / / / / /
/_/ |___/_/_/ /_/ /_/
ivim now provides three tracks:
nvim/init.lua (modern Neovim, recommended)vimrc_mini (legacy Vim/Neovim script config)vimrc (legacy full config, not actively maintained)If you like this project, you can buy me a coffee.
| Track | File | Best for | Status |
|---|---|---|---|
| Modern Neovim | nvim/init.lua | Neovim users who want modern plugins and Lua config | Recommended |
| Mini legacy | vimrc_mini | Vim 8+ and users who prefer Vimscript setup | Stable |
| Full legacy | vimrc | Historical ivim setup | Not maintained |
nvim/init.lua)lazy.nvim plugin managementtelescope.nvim + neo-tree.nvim navigationnvim-lspconfig + mason.nvim + nvim-cmp for LSP/completiontreesitter, formatting (conform.nvim), linting (nvim-lint)Legacy screenshots are kept for reference:


-N)curl or wgetpyright and other npm-based Mason packages)shellcheck, ruff, markdownlint, eslint_d-i, -m, -u)-i) / Vim 8.0+ (-m) / Neovim (-u)ctagsbash <(curl -L https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh) -N
# or
bash <(wget --no-check-certificate https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh -O -) -N
bash <(curl -L https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh) -i
bash <(curl -L https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh) -m
bash <(curl -L https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh) -u
setup.sh supports:
-i: install legacy full ivim-m: install legacy mini for Vim-u: install legacy mini for Neovim-N: install modern Neovim single-file config-n: update ivim and installed plugins-d / --dry-run: print actions without changing files-y / --yes: auto-confirm promptsExamples:
# Preview modern Neovim install
bash setup.sh --dry-run -N
# Install modern Neovim config non-interactively
bash setup.sh --yes -N
# Update non-interactively
bash $HOME/.ivim/setup.sh --yes -n
bash $HOME/.ivim/setup.sh -n
lua_ls), Python (pyright), and Markdown (marksman) through mason.nvim.Space.gd/gr/gi/gD, K, <leader>ls, <leader>rn, <leader>ca, and <leader>cf.[d/]d, <leader>le, <leader>ld, <leader>lj, and <leader>lk.Space then wait: open which-key hintsSpace ?: open full keymap hintsSpace ff: find filesSpace fg: live grepSpace fb: buffersSpace fr: recent filesSpace f: toggle file treeSpace t: symbols outlineSpace wh/wj/wk/wl: move between windowsSpace wv / Space ws: split vertical / horizontalSpace wq: close current windowSpace le / Space ld: line diagnostics / diagnostics listSpace rn: rename symbolSpace ca: code actionSpace cf: format bufferFor historical customization docs, see the wiki:
Contributions are welcome. See issue #31 for context.
MIT. See LICENSE.txt.
Vim Script
47.6%
Lua
36.0%
Shell
16.4%
I love Vim, and I also love modifying it to be more convenient and efficient. So I name it "ivim"! Welcome to contribute to ivim.
479
stars
390
commits
Vim Script
primary language
Apr 18, 2026
updated
An easy and customizable Vim/Neovim setup with a modern Neovim path and legacy Vim paths in one repository.
_ _
(_) __(_)___ ___
/ / | / / / __ `__ \
/ /| |/ / / / / / / /
/_/ |___/_/_/ /_/ /_/
ivim now provides three tracks:
nvim/init.lua (modern Neovim, recommended)vimrc_mini (legacy Vim/Neovim script config)vimrc (legacy full config, not actively maintained)If you like this project, you can buy me a coffee.
| Track | File | Best for | Status |
|---|---|---|---|
| Modern Neovim | nvim/init.lua | Neovim users who want modern plugins and Lua config | Recommended |
| Mini legacy | vimrc_mini | Vim 8+ and users who prefer Vimscript setup | Stable |
| Full legacy | vimrc | Historical ivim setup | Not maintained |
nvim/init.lua)lazy.nvim plugin managementtelescope.nvim + neo-tree.nvim navigationnvim-lspconfig + mason.nvim + nvim-cmp for LSP/completiontreesitter, formatting (conform.nvim), linting (nvim-lint)Legacy screenshots are kept for reference:


-N)curl or wgetpyright and other npm-based Mason packages)shellcheck, ruff, markdownlint, eslint_d-i, -m, -u)-i) / Vim 8.0+ (-m) / Neovim (-u)ctagsbash <(curl -L https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh) -N
# or
bash <(wget --no-check-certificate https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh -O -) -N
bash <(curl -L https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh) -i
bash <(curl -L https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh) -m
bash <(curl -L https://raw.githubusercontent.com/kepbod/ivim/master/setup.sh) -u
setup.sh supports:
-i: install legacy full ivim-m: install legacy mini for Vim-u: install legacy mini for Neovim-N: install modern Neovim single-file config-n: update ivim and installed plugins-d / --dry-run: print actions without changing files-y / --yes: auto-confirm promptsExamples:
# Preview modern Neovim install
bash setup.sh --dry-run -N
# Install modern Neovim config non-interactively
bash setup.sh --yes -N
# Update non-interactively
bash $HOME/.ivim/setup.sh --yes -n
bash $HOME/.ivim/setup.sh -n
lua_ls), Python (pyright), and Markdown (marksman) through mason.nvim.Space.gd/gr/gi/gD, K, <leader>ls, <leader>rn, <leader>ca, and <leader>cf.[d/]d, <leader>le, <leader>ld, <leader>lj, and <leader>lk.Space then wait: open which-key hintsSpace ?: open full keymap hintsSpace ff: find filesSpace fg: live grepSpace fb: buffersSpace fr: recent filesSpace f: toggle file treeSpace t: symbols outlineSpace wh/wj/wk/wl: move between windowsSpace wv / Space ws: split vertical / horizontalSpace wq: close current windowSpace le / Space ld: line diagnostics / diagnostics listSpace rn: rename symbolSpace ca: code actionSpace cf: format bufferFor historical customization docs, see the wiki:
Contributions are welcome. See issue #31 for context.
MIT. See LICENSE.txt.
Vim Script
47.6%
Lua
36.0%
Shell
16.4%