Skip to content

Latest commit

 

History

89 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ABC Vim

My personal Vim setup for Linux, macOS, and Windows. Inspired by irrigger/ir-vim.

Install

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.

Linux / macOS

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.sh

Option 2: Clone first, then install from your local copy

git clone https://github.com/aaronbcarlisle/abc-vim.git ~/.vim
sh ~/.vim/install.sh

Windows (PowerShell)

Option 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.ps1

Option 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.ps1

Replacing a modified install (--force / -Force)

By 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 2

When 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.

How the installer works

  • 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.sh under 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_REPO environment variable to install from your own fork.

Credits

Plugins, managed by Vundle:

Vendored, not installed by Vundle:

  • w0ng/vim-hybrid — shipped directly as colors/hybrid.vim, so :PluginInstall will not fetch it

About

My personal Vim setup for Linux, macOS and Windows, with idempotent sh and PowerShell installers. Inspired by https://github.com/irrigger/ir-vim.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Used by

Contributors

Languages