+" use leader-n to unhighlight search
+nmap <silent> <Leader>n :silent nohl<CR>
+" use leader-# to display the number of matches for the last search
+nmap <Leader># :%s:<C-R>/::gn<CR>
+
+" line wrap {{{1
+set backspace=indent,eol,start " allow backspacing over everything in insert mode
+set wrap " wrap lines
+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
+
+set undofile " persistent undo history
+set undodir=$HOME/.vim/backupdir