git rev-parse
の結果でその後のコマンドの内容を変えている。
exit statusが取れればrev-parse
じゃなくても良さそうだけど、方法がわからなかった。
function! IsInsideWorkTree()letl:is_inside = system('git rev-parse --is-inside-work-tree')returnl:is_inside =="true\n" ? 1 : 0endfunctionfunction! UniteFileRecSource()if IsInsideWorkTree()
Unite file_rec/git
else
Unite file_rec/async
endifendfunction
key bind
nnoremap [unite] <Nop>
nmap <space>f [unite]
xmap <space>f [unite]
nnoremap<silent> [unite]r :<C-u>call UniteFileRecSource()<CR>