set linebreak " do not wrap in the middle of a word
set showbreak=▒▒ " show these chars for wrapped lines
+" indent {{{1
+set expandtab " expand <Tab> to spaces in Insert mode
+set smarttab " a <Tab> in an indent inserts 'shiftwidth' spaces
+set softtabstop=4 " if non-zero, number of spaces to insert for a <Tab>
+set shiftwidth=4 " number of spaces used for each step of (auto)indent
+set shiftround " round to 'shiftwidth' for "<<" and ">>"
+
+set cindent " use smart C indenting (see :h C-indenting)
+set cinoptions=l1,c4,(0,U1,w1,m1,j1,J1
+
+:nmap <Leader>b :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR>
+:nmap <Leader>B :set expandtab tabstop=8 shiftwidth=8 softtabstop=4<CR>
+:nmap <Leader>M :set noexpandtab tabstop=8 softtabstop=4 shiftwidth=4<CR>
+:nmap <Leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR>
+
" backup/undo {{{1
set backup " keep a backup file
set backupdir=$HOME/.vim/backupdir
" airline {{{1
let g:airline#extensions#tabline#enabled = 1
-" tabbing {{{1
-:nmap <Leader>b :set expandtab tabstop=4 shiftwidth=4 softtabstop=4<CR>
-:nmap <Leader>B :set expandtab tabstop=8 shiftwidth=8 softtabstop=4<CR>
-:nmap <Leader>M :set noexpandtab tabstop=8 softtabstop=4 shiftwidth=4<CR>
-:nmap <Leader>m :set expandtab tabstop=2 shiftwidth=2 softtabstop=2<CR>
-
" appearance {{{1
set background=dark " Dark background, d'uh!
set number " show some linenumbers
set viminfo='100,<50,s10,h,n~/.vim/viminfo " viminfo defaults but save file in .vim
-" tabs {{{1
-set softtabstop=4
-set shiftwidth=4
-set expandtab
" misc bindings {{{1
" Don't use Ex mode, use Q for formatting