basyura's blog

あしたになったらほんきだす。

:Unite file でどこにいるのかわからなくなる問題を解決する

f:id:basyura:20130508210153p:plain

../../

とか相対位置で辿るときに、「あれ?ここどこだっけ?」ということがよくあります。
そんな悩みを解決。以下を vimrc に書いてマッピング。

let my_absolute_path = {
\ 'is_selectable' : 1,
\ }
function! my_absolute_path.func(candidates)
  let candidate = a:candidates[0]
  let path      = candidate.action__directory
  if candidate.kind == 'directory'
    let path = fnamemodify(path . '/../', ':p')
  else
    let path = fnamemodify(path, ':p:h') . '/'
  end
  call unite#start([['file'], ['file/new']],unite#get_context())
  call unite#mappings#narrowing(path)
endfunction
call unite#custom_action('file', 'absolute_path', my_absolute_path)
unlet my_absolute_path

inoremap <buffer><expr> <C-@> unite#do_action('absolute_path')

すると!

f:id:basyura:20130508210207p:plain

相対パスから絶対パスに早変わり!

便利だわー。