🤖
CtrlP を使って git log からコミットを選択して、そのコミット時点のカレントバッファのファイルを表示する
CtrlP と ctrlp-generic と gin.vim を使います。
それぞれのプラグインを読み込んで、以下を vimrc に書きます。
過去の内容を表示したいファイルを開いた状態で <Space>gbo
を入力すると、 git log
の結果が CtrlP で表示され、選択したコミット時点のファイルが vsplit で表示されます。
function! GinEditCallback(selected_value) abort
call matchstr(a:selected_value, '\w\+')
\ ->printf(":GinEdit ++opener=vsplit %s %%")
\ ->execute()
endfunction
nnoremap <Space>gbo <Cmd>call CtrlPGeneric(systemlist('git log --date=short --pretty=format:"%h %cd %s"'), 'GinEditCallback')<CR>
Discussion