diff --git a/dotfiles/.vim/plugged/vim-sensible/.github/FUNDING.yml b/dotfiles/.vim/plugged/vim-sensible/.github/FUNDING.yml
new file mode 100644
index 00000000..e2a49d11
--- /dev/null
+++ b/dotfiles/.vim/plugged/vim-sensible/.github/FUNDING.yml
@@ -0,0 +1,2 @@
+github: tpope
+custom: ["https://www.paypal.me/vimpope"]
diff --git a/dotfiles/.vim/plugged/vim-sensible/.gitrepo b/dotfiles/.vim/plugged/vim-sensible/.gitrepo
new file mode 100644
index 00000000..cee78277
--- /dev/null
+++ b/dotfiles/.vim/plugged/vim-sensible/.gitrepo
@@ -0,0 +1,12 @@
+; DO NOT EDIT (unless you know what you are doing)
+;
+; This subdirectory is a git "subrepo", and this file is maintained by the
+; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme
+;
+[subrepo]
+ remote = https://github.com/tpope/vim-sensible.git
+ branch = master
+ commit = 8985da7669bbd73afce85ef0e4a3e1ce2e488595
+ parent = a8e788a215d44005d2bb004d362299ae0967f500
+ method = merge
+ cmdver = 0.4.3
diff --git a/dotfiles/.vim/plugged/vim-sensible/README.markdown b/dotfiles/.vim/plugged/vim-sensible/README.markdown
new file mode 100644
index 00000000..d8adb405
--- /dev/null
+++ b/dotfiles/.vim/plugged/vim-sensible/README.markdown
@@ -0,0 +1,95 @@
+# sensible.vim
+
+Think of sensible.vim as one step above `'nocompatible'` mode: a universal
+set of defaults that (hopefully) everyone can agree on.
+
+* If you're new to Vim, you can install this as a starting point, rather than
+ copying some random vimrc you found.
+* If you're pair programming and you can't agree on whose vimrc to use, this
+ can be your neutral territory.
+* If you're administrating a server with an account that's not exclusively
+ yours, you can `scp` this up to make things a bit more tolerable.
+* If you're troubleshooting a plugin and need to rule out interference from
+ your vimrc, having this installed will ensure you still have some basic
+ amenities.
+
+## Installation
+
+Install using your favorite package manager, or use Vim's built-in package
+support:
+
+ mkdir -p ~/.vim/pack/tpope/start
+ cd ~/.vim/pack/tpope/start
+ git clone https://tpope.io/vim/sensible.git
+
+## Features
+
+See the [source][] for the authoritative list of features. (Don't worry, it's
+mostly `:set` calls.) Here's a taste:
+
+* `'backspace'`: Backspace through anything in insert mode.
+* `'incsearch'`: Start searching before pressing enter.
+* `'listchars'`: Makes `:set list` (visible whitespace) prettier.
+* `'scrolloff'`: Always show at least one line above/below the cursor.
+* `'autoread'`: Autoload file changes. You can undo by pressing `u`.
+* `runtime! macros/matchit.vim`: Load the version of matchit.vim that ships
+ with Vim.
+
+[source]: https://github.com/tpope/vim-sensible/tree/master/plugin/sensible.vim
+
+## FAQ
+
+> How can I see what this plugin actually does?
+
+The [source][] is authoritative. Use `:help 'option'` to see the
+documentation for an option. If you install [scriptease.vim][], you can press
+`K` on an option (or command, or function) to jump to its documentation.
+
+[scriptease.vim]: https://github.com/tpope/vim-scriptease
+
+> How can I override a setting?
+
+Normally, sensible.vim loads after your vimrc, making it a bit tricky to
+override (although you could use `after/plugin/sensible.vim`). If you want to
+load it earlier, add the following line to your vimrc, then put your overrides
+below.
+
+ runtime! plugin/sensible.vim
+
+Feel free to [let me know][GitHub issues] which setting you object to, so I
+can reassess whether it makes sense to include it.
+
+## Contributing
+
+I want this to be a plugin nobody objects to installing. [Let me
+know][GitHub issues] if you have any objections to *anything*. There are a
+handful of settings I figured *might* be controversial, but I included
+anyways, just to settle the question once and for all. It won't take much
+persuasion for me to remove them. Everything else is negotiable.
+
+Feel free to ask a question if you're not sure why I've set something, as I
+haven't put much effort into documenting that.
+
+I'm a stickler for [commit messages][], so if you send me a pull request with
+so much as a superfluous period in the subject line, I will close it without
+so much as a second thought, and save my precious attention for someone who
+can actually follow directions.
+
+[GitHub issues]: http://github.com/tpope/vim-sensible/issues
+[commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
+
+## Self-Promotion
+
+Like sensible.vim? Follow the repository on
+[GitHub](https://github.com/tpope/vim-sensible) and vote for it on
+[vim.org](http://www.vim.org/scripts/script.php?script_id=4391). And if
+you're feeling especially charitable, follow [tpope](http://tpo.pe/) on
+[Twitter](http://twitter.com/tpope) and
+[GitHub](https://github.com/tpope).
+
+This pairs great with [sleuth.vim](https://github.com/tpope/vim-sleuth).
+
+## License
+
+Copyright © Tim Pope. Distributed under the same terms as Vim itself.
+See `:help license`.
diff --git a/dotfiles/.vim/plugged/vim-sensible/plugin/sensible.vim b/dotfiles/.vim/plugged/vim-sensible/plugin/sensible.vim
new file mode 100644
index 00000000..2bdf4796
--- /dev/null
+++ b/dotfiles/.vim/plugged/vim-sensible/plugin/sensible.vim
@@ -0,0 +1,102 @@
+" sensible.vim - Defaults everyone can agree on
+" Maintainer: Tim Pope
+" Version: 1.2
+
+if exists('g:loaded_sensible') || &compatible
+ finish
+else
+ let g:loaded_sensible = 'yes'
+endif
+
+if has('autocmd')
+ filetype plugin indent on
+endif
+if has('syntax') && !exists('g:syntax_on')
+ syntax enable
+endif
+
+" Use :help 'option' to see the documentation for the given option.
+
+set backspace=indent,eol,start
+set complete-=i
+set smarttab
+
+set nrformats-=octal
+
+if !has('nvim') && &ttimeoutlen == -1
+ set ttimeout
+ set ttimeoutlen=100
+endif
+
+set incsearch
+" Use to clear the highlighting of :set hlsearch.
+if maparg('', 'n') ==# ''
+ nnoremap :nohlsearch=has('diff')?'diffupdate':''
+endif
+
+if &laststatus < 2
+ set laststatus=2
+endif
+set ruler
+set wildmenu
+
+if !&scrolloff
+ set scrolloff=1
+endif
+if !&sidescrolloff
+ set sidescrolloff=5
+endif
+set display+=lastline
+
+if &encoding ==# 'latin1' && has('gui_running')
+ set encoding=utf-8
+endif
+
+if &listchars ==# 'eol:$'
+ set listchars=tab:>\ ,trail:-,extends:>,precedes:<,nbsp:+
+endif
+
+if v:version > 703 || v:version == 703 && has("patch541")
+ set formatoptions+=j " Delete comment character when joining commented lines
+endif
+
+if has('path_extra')
+ setglobal tags-=./tags tags-=./tags; tags^=./tags;
+endif
+
+if &shell =~# 'fish$' && (v:version < 704 || v:version == 704 && !has('patch276'))
+ set shell=/usr/bin/env\ bash
+endif
+
+set autoread
+
+if &history < 1000
+ set history=1000
+endif
+if &tabpagemax < 50
+ set tabpagemax=50
+endif
+if !empty(&viminfo)
+ set viminfo^=!
+endif
+set sessionoptions-=options
+set viewoptions-=options
+
+" Allow color schemes to do bright colors without forcing bold.
+if &t_Co == 8 && $TERM !~# '^Eterm'
+ set t_Co=16
+endif
+
+" Load matchit.vim, but only if the user hasn't installed a newer version.
+if !exists('g:loaded_matchit') && findfile('plugin/matchit.vim', &rtp) ==# ''
+ runtime! macros/matchit.vim
+endif
+
+if empty(mapcheck('', 'i'))
+ inoremap u
+endif
+if empty(mapcheck('', 'i'))
+ inoremap u
+endif
+
+" vim:set ft=vim et sw=2: