vim で最近開いたファイルの一覧は ~/.viminfo
に入っているので、これを活用する。
下記のコマンドで、掲題のことが実行できる。
vim $(egrep '^>' ~/.viminfo | cut-c3- | perl -E'say for map { chomp; $_ =~ s/^~/$ENV{HOME}/e; -f $_ ? $_ : () } <STDIN>' | peco)
for fish users
自分は fish ユーザーで、 Ctrl + v
で上記のコマンドを実行したかったので、下記のようにした。
まず関数の定義を作る
~/.config/fish/functions/peco_open_recent_file.fish
function peco_open_recent_file
vim (egrep '^>' ~/.viminfo | cut -c3- | perl -E 'say for map { chomp; $_ =~ s/^~/$ENV{HOME}/e; -f $_ ? $_ : () } <STDIN>' | peco)
end
config.fish に以下の記述を追加すれば OK 。
function fish_user_key_bindings
bind \cv peco_open_recent_file
end