" save and restore folds
 set viewoptions=folds,cursor    " don't save local options
 
+" diff mode {{{2
+set diffopt=filler,vertical
+
 " reading and writing files {{{2
-set nomodeline                  " don't read modelines
+set modeline                    " read modelines
+set modelines=2                 " only check first/last 2 lines
 set writebackup                 " write a backup file before overwriting a file
 set backup                      " keep a backup after owerwriting a file
 set backupdir=$XDG_CACHE_HOME/vim//
 cnoremap <c-a> <home>
 cnoremap <c-e> <end>
 
+" proper movement when lines are wrapped
+noremap j gj
+noremap k gk
+
 " disable arrows
 noremap  <Up>    <NOP>
 noremap  <Down>  <NOP>
 nnoremap zx zMzxzz15<C-e>
 
 " edit vimrc in new tab
-nmap <leader>ev :tabedit $MYVIMRC<CR>
+nmap <leader>ev :tabedit $MYVIMRC<CR>:lcd %:p:h<CR>
 
 map <F1> :ls<CR>:b<space>
 
 nnoremap <silent> <leader>gs :Gstatus<CR>
 nnoremap <silent> <leader>gd :Gdiff<CR>
 nnoremap <silent> <leader>gc :tab Gcommit -v<CR>
-nnoremap <silent> <leader>gw :Gwrite<cr>
+nnoremap <silent> <leader>ga :Gwrite<cr>
 
 " NERDTree {{{2
 " open/close NERDTree with \e
 endfunction
 nnoremap <silent><leader>n :call g:ToggleNumber()<cr>
 nnoremap <silent><leader>N :setlocal relativenumber!<cr>
-