Vim: 編集中のファイルの絶対パス名


またまたマニアックな話題ですみません.編集中のファイルの絶対パス名をvimで調べる方法です.現在,編集中のファイル名は%なのですが,これだけでは絶対パスの場合もCWD相対パスの場合もあります.Vimは%のうしろに:pを付加した%:pを利用すれば絶対パス名がとれるようです.それだけの話題です.

そもそも何でこんなことに悩んでいるかというと,編集中のMarkdown形式のファイルを簡単にプレビューする機能を自作していたからです.細かい説明抜きに以下のようなスクリプトの組み合わせでできました.

まずはVimスクリプト
:map <buffer> <C-V> :!markdown preview “%:p”<CR><CR>

そして,markdown という名前のシェルスクリプト
#!/bin/sh
case $1 in
preview)
p=echo $2 | sed -e "s|^.*Dropbox[^/]*/||"
open -F “http://localhost/$p ” ;;
esac