Vimで現在開いているファイルのパスを取得する設定

# ~/.vimrc

function! CopyPath()
  let @*=expand('%:P')
endfunction

function! CopyFullPath()
  let @*=expand('%:p')
endfunction

function! CopyFileName()
  let @*=expand('%:t')
endfunction

command! CopyPath     call CopyPath()
command! CopyFullPath call CopyFullPath()
command! CopyFileName call CopyFileName()

nnoremap <silent>cp :CopyPath<CR>
nnoremap <silent>cfp :CopyFullPath<CR>
nnoremap <silent>cf :CopyFileName<CR>
$ cd ~/workspace/demo
$ vim app/controllers/application_controller.rb

でファイルを開いている場合だと以下のようにパスを取得することができる。

# ,cp
app/controllers/application_controller.rb

# ,cfp
/Users/username/workspace/demo/app/controllers/application_controller.rb

# ,cf
application_controller.rb

※ 「let mapleader=","」としている場合ノーマルモードで,cpと入力する。