My personal Vim setup for Linux, macOS, and Windows. Inspired by irrigger/ir-vim.
The installers are idempotent, so you can run them multiple times to update. Each installer will:
- Install any missing dependencies (git and vim)
- Set up your vim files in the appropriate location
- Configure ~/.vimrc and ~/.ideavimrc to point to the setup
- Install Vundle and all plugins listed in your .vimrc
| Linux / macOS | Windows | |
|---|---|---|
| Vim files go | ~/.vim |
%USERPROFILE%\vimfiles |
| Installer | install.sh |
install.ps1 |
On Windows, gvim and Git Bash's vim share one setup: the .vimrc finds the
abc-vim files in either ~/.vim or %USERPROFILE%\vimfiles, so it doesn't
matter which installer you used.
Option 1: Download and run the installer
curl -fsSL https://raw.githubusercontent.com/aaronbcarlisle/abc-vim/master/install.sh -o abc-vim-install.sh
less abc-vim-install.sh # review before running -- it installs packages and moves files in $HOME
sh abc-vim-install.shOption 2: Clone first, then install from your local copy
git clone https://github.com/aaronbcarlisle/abc-vim.git ~/.vim
sh ~/.vim/install.shOption 1: Download and run the installer
iwr -useb https://raw.githubusercontent.com/aaronbcarlisle/abc-vim/master/install.ps1 -OutFile abc-vim-install.ps1
notepad abc-vim-install.ps1 # review before running -- it installs packages and moves files in $HOME
powershell -ExecutionPolicy Bypass -File abc-vim-install.ps1Option 2: Clone first, then install from your local copy
git clone https://github.com/aaronbcarlisle/abc-vim.git $env:USERPROFILE\vimfiles
powershell -ExecutionPolicy Bypass -File $env:USERPROFILE\vimfiles\install.ps1By default the installers update an existing abc-vim (or Vundle) checkout with
git pull --ff-only, keeping any local commits or edits, and leave it alone
(with a warning) if it can't fast-forward. To replace a checkout that has
local changes or can't fast-forward with a fresh copy instead, add --force
(Linux / macOS) or -Force (Windows) to the install command. The old checkout
is backed up to <dir>.bak.<timestamp> first, so nothing is lost:
sh abc-vim-install.sh --force # Option 1 (downloaded installer)
sh ~/.vim/install.sh --force # Option 2 (from your clone)powershell -ExecutionPolicy Bypass -File abc-vim-install.ps1 -Force # Option 1
powershell -ExecutionPolicy Bypass -File $env:USERPROFILE\vimfiles\install.ps1 -Force # Option 2When run from the installed checkout itself (Option 2), the installer can't
move the directory it is running from, so it copies it to the backup and then
resets it to its upstream branch with git fetch and git reset --hard. If
the branch has no upstream, it leaves the checkout as-is. Untracked files
don't count as local changes. Use -h / --help (-Help on Windows) to see
the options.
- Installing from a local checkout: If you run the installer from a cloned repository, it installs from that local copy (including any uncommitted changes). If you download the installer standalone, it clones the remote repository instead.
- Safe file handling: Nothing is deleted. If abc-vim is already installed, it updates with
git pull --ff-only, and a checkout that can't fast-forward is left as-is unless you pass--force/-Force(which also replaces a checkout with local edits or commits). Anything the installer replaces, including ~/.vimrc, ~/.ideavimrc, a ~/.vim that isn't an abc-vim checkout, or (with--force) a modified checkout, is moved or copied to a timestamped.bak.<timestamp>backup first. - Package manager detection: Dependencies are installed using whatever package manager is available on your system (apt, dnf, yum, pacman, zypper, apk, brew, or port on Unix; winget, choco, or scoop on Windows). If no package manager is found, the installer will stop and let you know what's missing.
- Windows symlinks: Creating symlinks on Windows requires Developer Mode or an admin shell. This applies to
install.shunder Git Bash too, which asks for native symlinks. If these aren't available, the installer copies the config files instead and says so. Note that edits to copied files won't sync with the repository. - Custom fork installation: Set the
ABC_VIM_REPOenvironment variable to install from your own fork.
Plugins, managed by Vundle:
- jlanzarotta/bufexplorer
- jiangmiao/auto-pairs
- nvie/vim-flake8
- octol/vim-cpp-enhanced-highlight
- preservim/nerdcommenter
- tpope/vim-fugitive
- aaronbcarlisle/python-syntax-enhanced
Vendored, not installed by Vundle:
- w0ng/vim-hybrid — shipped directly as
colors/hybrid.vim, so:PluginInstallwill not fetch it