A modern, standalone, high-performance Vim & Neovim configuration.
Absorbed and modernized from amix/vimrc / vimrc-fork: sub-millisecond startup, instant file/content search via ripgrep & fd, NERDTree sidebar, lightning code reading & review, seamless system clipboard, precision text editing, and automated fast formatting.
Install system dependencies (
ripgrep,fd,bat,fzf,vim,neovim):bash zsh.sh
Run full environment setup (interactively choose 1) Vim, 2) Neovim, or 3) Both):
zsh setup.sh
- Vim & Neovim Configuration (
vimrc):- Dual Support: Works identically across standard Vim (
~/.vimrc) and Neovim (~/.config/nvim/init.vim) - Plugin Management:
vim-plugwith auto-bootstrapping and parallel async downloads - File Tree Explorers:
nvim-tree.lua(Neovim async tree) /fern.vim(Vim async tree) +oil.nvim(buffer-based file editor) - Syntax & Highlighting:
vim-polyglot(lazy-loaded 100+ languages) - Git Workflow:
vim-fugitive(status & interactive blame),vim-gitgutter,git-messenger.vim(popup commit info) - Precision Editing:
vim-surround,vim-commentary,vim-repeat,vim-indent-object,vim-visual-multi,editorconfig - Formatters:
ALEwith modern fast linters/fixers (ruff,gofumpt,prettier,shfmt,rustfmt) - UI & Aesthetics:
gruvboxtrue-color scheme,lightline.vimstatusline, hybrid relative numbers - Neovim Enhancements: Live substitution preview (
inccommand=split), terminal escape mappings - System Clipboard: Seamless copy/paste with OS and AI assistants (
clipboard^=unnamed,unnamedplus) - Persistent Undo: Undo history survives editor restarts (
~/.vim/temp_dirs/undodir)
- Dual Support: Works identically across standard Vim (
- Zsh: oh-my-zsh, shell aliases (
bat,ripgrep,fd,fzf,v,n), and fzf key-bindings - Node.js: via
fnm(Fast Node Manager) withpnpm - Python: via
uv(fast Python package manager) withruff - Rust: via
rustupwith optionalrsproxy.cnmirror - Go: with
goimportsandshfmt(installed to~/sdk/go<version>) - VSCode: editor settings (supports official VSCode, Insiders, VSCodium)
- Git: global gitignore configuration
| Shortcut | Action | Description |
|---|---|---|
<leader>nn | Toggle Tree | Toggle file tree sidebar (nvim-tree / fern.vim) |
<leader>nf | Locate File | Reveal current file in tree sidebar (nvim-tree / fern.vim) |
- / <leader>o | :Oil | Oil.nvim: Edit directory like a text buffer (Neovim) |
<leader>O | :Oil --float | Oil.nvim: Open floating directory editor (Neovim) |
<leader>f / <C-p> | :Files | Fuzzy search files in workspace via fd (Esc to exit) |
<leader>g / <leader>rg | :Rg | Full-text search across files via ripgrep (Esc to exit) |
<leader>b | :Buffers | Switch active buffers |
<leader>bl | :BLines | Search lines in current buffer |
[b / ]b | :bprevious / :bnext | Previous / Next buffer |
<leader>h / <leader>l | Buffer Nav | Buffer previous / next |
<leader>gb | :Git blame | Interactive Git Blame split (Enter on commit to inspect) |
<leader>gm | git-messenger | Popup commit message under cursor |
<leader>gs | :Git | Git status window (fugitive) |
<leader>gd | :Gdiffsplit | Git diff split view |
<leader>d | :GitGutterToggle | Toggle Git diff signs |
<leader>cf | :ALEFix | Format current buffer on demand |
<leader><cr> | :nohlsearch | Clear search highlights |
<C-j/k/h/l> | Window Move | Fast window navigation |
* / # (Visual) | Search Selection | Search selected text forwards / backwards |
gcc / gc | Commentary | Toggle comment for line / selection |
cs"' / ds" | Surround | Change/delete surrounding quotes/brackets |
During setup.sh, you can choose to use Chinese mirror sources for faster downloads in mainland China.