# 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`.
