✏️

vimでworkspaceからのファイルパスを素早くヤンクしたい

2020/12/03に公開

vimでカレントファイルパスを素早くヤンクしたいコマンドを長らく便利に使っていたものの、vim-fugitive:Gstatusdefx.nvimからファイルを開くと、<C-g>がフルパスになってしまうという不便さにちょいちょい遭遇していた。

そして今更ながらいい方法が見つかった。
https://stackoverflow.com/questions/4525261/getting-relative-paths-in-vim

改良後。

function! ClipText(data)
  let @0=a:data
  let @"=a:data
  let @*=a:data
  echo "clip: ".a:data
  return "\<ESC>"
endfunction
nnoremap <expr> <C-g> ClipText(fnamemodify(expand("%"), ":~:."))
nnoremap <expr> <Space><C-g> ClipText(expand('%:t'))

~の外だとフルパス回避はできないが普段使いには十分と思われる。

Discussion