-nnoremap [unite] <Nop>
-nmap <leader>u [unite]
-nnoremap <silent> [unite]f :<C-u>Unite -start-insert file_rec<CR>
-nnoremap <silent> [unite]a :<C-u>Unite grep -input=\12\17<CR>
+" unite-file_rec {{{3
+if executable('ag')
+ " Use ag in unite rec source
+ let g:unite_source_rec_async_command = ['ag', '--follow', '--nocolor', '--nogroup', '-g', '']
+end
+nnoremap <silent> [unite]f :<C-u>Unite -start-insert file_rec/async<CR>
+call unite#custom#source('file_rec/async', 'sorters', 'sorter_selecta')
+
+" unite-buffer {{{3
+call unite#custom#default_action('buffer', 'open')
+nnoremap <silent> [unite]b :<C-u>Unite buffer:-<CR>
+
+" unite-menu {{{3
+let g:unite_source_menu_menus = {}
+let g:unite_source_menu_menus.fugitive = { 'description' : 'fugitive menu'}
+let g:unite_source_menu_menus.fugitive.command_candidates = {
+ \ 'Gstatus <Leader>gs' : 'Gstatus',
+ \ 'Gcommit -v <Leader>gc' : 'Gcommit -v',
+ \ 'Glog' : 'Glog',
+ \}
+
+nnoremap <silent> <leader>gg :<C-u>Unite menu:fugitive<CR>
+
+let g:unite_source_history_yank_enable = 1
+nnoremap <silent> [unite]p :<C-u>Unite history/yank<CR>