<p>How do I make <a href="http://en.wikipedia.org/wiki/Vi" rel="noreferrer">vi</a>-<a href="http://en.wikipedia.org/wiki/Vim_%28text_editor%29" rel="noreferrer">Vim</a> never use tabs (converting spaces to tabs, bad!), makes the tab key == 4 spaces, and automatically indent code after curly brace blocks like <a href="http://en.wikipedia.org/wiki/Emacs" rel="noreferrer">Emacs</a> does?</p>

<p>Also, how do I save these settings so I never have to input them again?</p>

<p>I've seen other questions related to this, but it always seems to be a little off from what I want.</p>

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