Small Changes

Vimでカレントファイルのパスをクリップボードに渡したい


Metadata


結論

SPC + C-gすると、ファイルパスをWindowsのクリップボードにコピーするようにしました。

最初は無名レジスタの指定がうまくいかずハマりましたが、@"でできました。

これだと絶対パスになるので、Visual Studio Codeのようにファイルのルートからの相対パスでファイルパスを取得できるようにしたいです。

@"=expand('%:p')

  • 無名レジスタにexpand('%:p')でカレントファイルの絶対パスを保存

call system('clip.exe', @")

  • 無名レジスタの内容をWindowsのクリップボードに渡す

" カレントバッファのファイルパスをクリップボードにコピー
nnoremap <leader><C-g> :<C-u>echo "copied fullpath: " . expand('%:p') \| let @"=expand('%:p') \| call system('clip.exe', @")<CR>

参考

References