function s:dowrite(confirm = v:false) if a:confirm || confirm("Commit changes?", "&Yes\n&No", 2) == 1 Gin commit -F /tmp/komitto let winid = t:winid tabclose call win_gotoid(winid) endif endfunction function p#gin#komitto() abort let winid = win_getid() tab split let t:winid = winid GinTcd GinDiff --cached botright vsplit GinLog --oneline topleft new /tmp/komitto resize 3 augroup p.gin.komitto autocmd! autocmd BufWritePost <buffer> call s:dowrite() augroup END nnoremap <buffer> ZZ <Cmd>autocmd! p.gin.komitto<CR><Cmd>update<CR><Cmd>call <SID>dowrite(v:true)<CR> endfunction