--- /dev/null
+---
+title: vim-shell
+homepage: https://webinstall.dev/vim-spell
+tagline: |
+ vim shell sets the default shell for vim
+---
+
+To update (replacing the current version) run `webi vim-shell`.
+
+## Cheat Sheet
+
+> `set shell=bash`, always
+
+Especially if you use a non-bash-compatible shell, such as [fish](/fish), you
+should set `set shell=bash` as the **first line** in your `~/.vimrc`.
+
+This script does that for you.
+
+### Why set bash as your vim shell?
+
+Any vim plugin that uses shell scripting will assume _bash_ - just because
+that's the way the world is.
+
+Even if you have a mostly-bash-compatible shell, such as _zsh_, it's a good idea
+to set the vim shell to bash, just to avoid any compatibility issues.
--- /dev/null
+#!/bin/bash
+
+function __init_vim_shell() {
+ set -e
+ set -u
+
+ mkdir -p "$HOME/.vim/plugins"
+ rm -rf "$HOME/.vim/plugins/shell.vim"
+
+ echo ""
+
+ if [ ! -e "$HOME/.vimrc" ]; then
+ touch "$HOME/.vimrc"
+ fi
+
+ if ! grep 'shell=' -r ~/.vimrc > /dev/null 2> /dev/null; then
+ printf '" bash set as default shell (for compatibility) by webinstall.dev/vim-shell\n' >> ~/.vimrc.new.1
+ printf 'set shell=bash\n' >> ~/.vimrc.new.1
+ printf '\n' >> ~/.vimrc.new.1
+ cat ~/.vimrc >> ~/.vimrc.new.1
+ mv ~/.vimrc.new.1 ~/.vimrc
+ fi
+
+ echo ""
+ echo "Vim default shell is set. Edit with 'vim ~/.vimrc'"
+}
+
+__init_vim_shell