whitespace – Tab key == 4 spaces and auto-indent after curly braces in Vim

whitespace – Tab key == 4 spaces and auto-indent after curly braces in Vim

As has been pointed out in a couple of other answers, the preferred method now is NOT to use smartindent, but instead use the following (in your .vimrc):

filetype plugin indent on
 show existing tab with 4 spaces width
set tabstop=4
 when indenting with >, use 4 spaces width
set shiftwidth=4
 On pressing tab, insert 4 spaces
set expandtab


In your [.vimrc:][1] file:

set smartindent
set tabstop=4
set shiftwidth=4
set expandtab

The help files take a bit of time to get used to, but the more you read, the better Vim gets:

:help smartindent

Even better, you can embed these settings in your source for portability:

:help auto-setting

To see your current settings:

:set all

As graywh points out in the comments, smartindent has been replaced by cindent which Works more cleverly, although still mainly for languages with C-like syntax:

:help C-indenting

Related, if you open a file that uses both tabs and spaces, assuming youve got

set expandtab ts=4 sw=4 ai

You can replace all the tabs with spaces in the entire file with

:%retab

whitespace – Tab key == 4 spaces and auto-indent after curly braces in Vim

The best way to get filetype-specific indentation is to use filetype plugin indent on in your vimrc. Then you can specify things like set sw=4 sts=4 et in .vim/ftplugin/c.vim, for example, without having to make those global for all files being edited and other non-C type syntaxes will get indented correctly, too (even lisps).

Leave a Reply

Your email address will not be published.