1.9 KiB
sleuth.vim
This plugin automatically adjusts 'shiftwidth'
and 'expandtab'
heuristically based on the current file, or, in the case the current file is
new, blank, or otherwise insufficient, by looking at other files of the same
type in the current and parent directories. In lieu of adjusting
'softtabstop'
, 'smarttab'
is enabled.
Compare to DetectIndent. I wrote this because I wanted something fully automatic. My goal is that by installing this plugin, you can remove all indenting related configuration from your vimrc.
Installation
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-sleuth.git
Notes
- Searching for other files of the same type continues up the directory
hierarchy until a match is found. This means, for example, the indent for
the first file in a brand new Ruby project might very well be derived from
your
.irbrc
. I consider this a feature. - If your file is consistently indented with hard tabs,
'shiftwidth'
will be set to your'tabstop'
. Otherwise, a'tabstop'
of 4 is enforced. - The algorithm is rolled from scratch, fairly simplistic, and only lightly battle tested. It's probably not (yet) as good as DetectIndent. Let me know what it fails on for you.
Self-Promotion
Like sleuth.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.
License
Copyright © Tim Pope. Distributed under the same terms as Vim itself.
See :help license
.