function! RunGitOp(op) execute "Silent" a:op GitGutter let wins = filter( range( 1 , winnr( '$' ) ) , \ "buffer_name(winbufnr(v:val)) =~ '^NERD_tree_[0-9]\\+$'" ) if empty( l:wins ) return endif let wn = winnr() call NERDTreeFocus() call feedkeys( "R:" . l:wn . "wincmd w\:\" , 't' ) endfunction let g:gitgutter_map_keys = 0 nnoremap g< :GitGutterPrevHunk nnoremap g> :GitGutterNextHunk nnoremap g+ :call RunGitOp( 'GitGutterStageHunk' ) nnoremap g- :GitGutterRevertHunk nnoremap ga :call RunGitOp( 'Git add %:p' )