I just had the unfortunate experience of using the standard vimrc on ubuntu (which I loathe, but it's the most stable OS on this VPS), and now I sympathize with people who think they can't use Vim. So here's my much less annoying vimrc. You'll want to make a ~/tmp folder if you don't have one. Adjust the augroups for the languages you use; I was forcing some syntax files to load because they had bad defaults like PHP as HTML, no idea if that's improved.
" Mark Damon Hughes vimrc file.
"
" To use it, copy it to ~/.vimrc
set nocompatible " Use Vim defaults (much better!)
filetype plugin on
set magic
set nrformats=
set errorbells
set nomore wrapscan noignorecase noincsearch nohlsearch noshowmatch
set backspace=indent,eol,start
"set smarttab expandtab shiftwidth=4
set nosmarttab noexpandtab shiftwidth=8 tabstop=8
set encoding=utf-8 fileencoding=utf-8
set listchars=tab:__,eol:$,nbsp:@
set backup backupdir=~/tmp dir=~/tmp
set viminfo='100,f1,<100
set popt=header:2,number:y
set tw=80 " I use this default, and override it in the autogroups below
" ctrl-] is used by telnet/ssh, so tags are unusable; I use Ctrl-J instead.
map <C-J> <C-]>
" Don't use Ex mode, use Q for formatting
map Q gq
map <Tab> >>
vmap <Tab> >
map <S-Tab> <<
vmap <S-Tab> <
" Always have syntax highlighting on
syntax on
hi Identifier guifg=blue
hi Statement term=bold guifg=blue
set guifont=Menlo_Regular:h14
set guioptions=aAemr
set showtabline=2
set mousemodel=popup_setpos
augroup c
au!
autocmd BufRead,BufNewFile *.c set ai tw=0
augroup END
augroup html
au!
autocmd BufRead,BufNewFile *.html set tw=0 ai
autocmd BufRead,BufNewFile *.html source $VIMRUNTIME/syntax/html.vim
augroup END
augroup java
au!
autocmd BufRead,BufNewFile *.java set tw=0 ai
augroup END
augroup objc
au!
autocmd BufRead,BufNewFile *.m,*.h set ai tw=0
augroup END
augroup php
au!
autocmd BufRead,BufNewFile *.php,*.inc set tw=0 ai et
autocmd BufRead,BufNewFile *.php,*.inc source $VIMRUNTIME/syntax/php.vim
augroup END
augroup python
au!
autocmd BufRead,BufNewFile *.py set ai tw=0
augroup END
augroup scheme
au!
autocmd BufRead,BufNewFile *.scm,*.ss,*.rkt set ai tw=0 sw=4 ts=4
augroup END