🤖

CtrlP を使って git log からコミットを選択して、そのコミット時点のカレントバッファのファイルを表示する

2023/02/26に公開

CtrlP と ctrlp-generic と gin.vim を使います。

https://github.com/ctrlpvim/ctrlp.vim

https://github.com/christoomey/ctrlp-generic

https://github.com/lambdalisue/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>

https://www.youtube.com/watch?v=vpMkObFBd7o

GitHubで編集を提案

Discussion