//vim-sleuthbytpope

vim-sleuth

sleuth.vim: Heuristically set buffer options

2,094
92
2,094
7
Vim Script

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. Modelines and EditorConfig
are also consulted, adding 'tabstop', 'textwidth', 'endofline',
'fileformat', 'fileencoding', and 'bomb' to the list of supported
options.

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/sleuth.git
vim -u NONE -c "helptags sleuth/doc" -c q

Notes

  • If your file is consistently indented with hard tabs, 'shiftwidth' will be
    set to your 'tabstop'. Otherwise, a 'tabstop' of 8 is enforced, unless
    another value is explicitly declared in a modeline or EditorConfig.

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.

[beta]v0.14.0