Vimでシンボリックを辿る
シンボリックリンクファイルの編集方法
シンボリックを編集するとき,皆さんどうしてますでしょうか?
vimではシンボリックリンクのファイルを編集するとき パスの展開は行われずに編集が開始されます.
僕はdotfilesをクローンしてきて, それをシンボリックリンクで
home以下においているのですが,
fugitiveを利用しようと思うとフルパスではないと行けないため, これが意外と面倒に思うわけです
本日はそんな人のためにシンボリックリンクをたどって ファイルを編集する方法を示します.
ファイルのフルパスを得て,編集を行う
現在のバッファについて, そのパスからシンボリックファイルをたどった パスを得るには以下のコマンドです
:echo resolve(expand('%'))
resolve, expandについては:h resolve等で確認してみてください.
シンボリックリンク先のファイルを編集したい場合は以下のコマンド
:e <C-R>=resolve(expand('%'))
便利なシンボリックファイルのリンク先編集コマンド
さっきのものをこれをいちいち入力するのは面倒ですね. .vimrcにコマンドとして以下の書いてしまいましょう
command! FollowSymlink call s:SwitchToActualFile() function! s:SwitchToActualFile() let l:fname = resolve(expand('%:p')) let l:pos = getpos('.') let l:bufname = bufname('%') enew exec 'bw '. l:bufname exec "e" . fname call setpos('.', pos) endfunction
これでシンボリックに煩わされる日々も無くなりました!