VimFilerでディレクトリを移動する際に<Plug>(vimfiler_cd_input_directory)
でディレクトリのパスを入力して移動できるのは知っていたのですが、Unite.vimでディレクトリを選択できないのかな?と思い、とりあえずUniteのアクションを書いてみました。
vim
let s:vimfiler_cd = { 'is_selectable' : 1, }
function! s:vimfiler_cd.func(candidates)
for l:candidate in a:candidates
call vimfiler#mappings#cd(l:candidate.action__path)
endfor
endfunction
call unite#custom_action('directory', 'vimfiler_cd', s:vimfiler_cd)
unlet s:vimfiler_cd
上記を.vimrcなどに記述すると、Uniteのアクションにvimfiler_cd
が追加されます。
で、このアクションを実行すると現在のVimFilerバッファのディレクトリを選択されたディレクトリに移動することができます。
私はとりあえず以下のような感じに割り当ててみました。
autocmd FileType vimfiler nnoremap I :Unite -default-action=vimfiler_cd directory_mru
追記:
既に、同じ動作を行うlcd
というデフォルトアクションがありました。
:Unite -default-action=lcd directory_mru