Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


sensible.vim: Defaults everyone can agree on

Subscribe to updates I use vim-sensible

Statistics on vim-sensible

Number of watchers on Github 2906
Number of open issues 20
Average time to close an issue about 2 months
Main language VimL
Average time to merge a PR 3 days
Open pull requests 5+
Closed pull requests 35+
Last commit over 2 years ago
Repo Created over 7 years ago
Repo Last Updated over 2 years ago
Size 44 KB
Homepage http://www.vim.or...
Organization / Authortpope
Page Updated
Do you use vim-sensible? Leave a review!
View open issues (20)
View vim-sensible activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating vim-sensible for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)


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.


If you don't have a preferred installation method, I recommend installing pathogen.vim, and then simply copy and paste:

cd ~/.vim/bundle
git clone git://github.com/tpope/vim-sensible.git


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.


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.

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 you vimrc, then put your overrides below.

runtime! plugin/sensible.vim

Feel free to let me know which setting you object to, so I can reassess whether it makes sense to include it.


I want this to be a plugin nobody objects to installing. Let me know 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.


Like sensible.vim? Follow the repository on GitHub and vote for it on vim.org. And if you're feeling especially charitable, follow tpope on Twitter and GitHub.

This pairs great with sleuth.vim.


Copyright Tim Pope. Distributed under the same terms as Vim itself. See :help license.

vim-sensible open issues Ask a question     (View All Issues)
  • about 4 years Relatively slow to load
  • about 4 years Highlight trailing whitespace by default?
  • about 4 years C-L mapping breaks netrw refresh
  • about 4 years Properly display man pages in GUI
  • about 4 years <nop> the Q mapping if unset
  • over 4 years What completeopt do people use?
  • over 5 years swap file handling: editexisting and DiffOrig
  • over 5 years Please don't set wildmenu
  • over 6 years :set smarttab and TeX
vim-sensible open pull requests (View All Pulls)
  • Set langnoremap
  • On windows, change `&shell` to `$COMSPEC` if win32/64 vim.exe or gvim.exe is executed from inside bash
  • Set sidescroll=1
  • Update sensible.vim
  • Preserve fish as 'shell' for Vim 7.4.276 or later
vim-sensible list of languages used
  • Vim script
Other projects in VimL