diff --git a/autoload/fugitive.vim b/autoload/fugitive.vim index 5017e11..9508228 100644 --- a/autoload/fugitive.vim +++ b/autoload/fugitive.vim @@ -3145,8 +3145,18 @@ function! s:RunEdit(state, tmp, job) abort let file = FugitiveVimPath(readfile(sentinel, '', 1)[0]) exe substitute(a:state.mods, '\', '-tab', 'g') 'keepalt split' s:fnameescape(file) set bufhidden=wipe - let s:edit_jobs[bufnr('')] = [a:state, a:tmp, a:job, sentinel] + let bufnr = bufnr('') + let s:edit_jobs[bufnr] = [a:state, a:tmp, a:job, sentinel] call fugitive#DidChange(a:state.git_dir) + if bufnr == bufnr('') && !exists('g:fugitive_event') + try + let g:fugitive_event = a:state.git_dir + let g:fugitive_result = a:state + exe s:DoAutocmd('User FugitiveEditor') + finally + unlet! g:fugitive_event g:fugitive_result + endtry + endif return 1 endfunction diff --git a/doc/fugitive.txt b/doc/fugitive.txt index 0952d0f..f089d74 100644 --- a/doc/fugitive.txt +++ b/doc/fugitive.txt @@ -656,6 +656,10 @@ FugitiveIndex After loading the |fugitive-summary| buffer. FugitivePager After loading a temp file created by a command like :Git --paginate or :Git blame. + *User_FugitiveEditor* +FugitiveEditor After a :Git command (e.g., :Git commit) edits a file + (e.g., the commit message). + *User_FugitiveChanged* FugitiveChanged After any event which can potentially change the repository, for example, any invocation of |:Git|.