:Gcommit -v opens message in new tab

Closes #513.  References #480.
This commit is contained in:
Tim Pope 2014-06-29 14:52:43 -04:00
parent 6239f5ed8e
commit 0cd33c6170
2 changed files with 8 additions and 6 deletions

View File

@ -63,12 +63,12 @@ that are part of Git repositories).
to commit, |:Gstatus| is called instead. Unless the to commit, |:Gstatus| is called instead. Unless the
arguments given would skip the invocation of an editor arguments given would skip the invocation of an editor
(e.g., -m), a split window will be used to obtain a (e.g., -m), a split window will be used to obtain a
commit message. Write and close that window (:wq or commit message, or a new tab if -v is given. Write
|:Gwrite|) to finish the commit. Unlike when running and close that window (:wq or |:Gwrite|) to finish the
the actual git-commit command, it is possible (but commit. Unlike when running the actual git-commit
unadvisable) to muck with the index with commands like command, it is possible (but unadvisable) to alter the
git-add and git-reset while a commit message is index with commands like git-add and git-reset while a
pending. commit message is pending.
*fugitive-:Gmerge* *fugitive-:Gmerge*
:Gmerge [args] Calls git-merge and loads errors and conflicted files :Gmerge [args] Calls git-merge and loads errors and conflicted files

View File

@ -1015,6 +1015,8 @@ function! s:Commit(args) abort
endif endif
if bufname('%') == '' && line('$') == 1 && getline(1) == '' && !&mod if bufname('%') == '' && line('$') == 1 && getline(1) == '' && !&mod
execute 'keepalt edit '.s:fnameescape(msgfile) execute 'keepalt edit '.s:fnameescape(msgfile)
elseif a:args =~# '\%(^\| \)-\%(-verbose\|\w*v\)\>'
execute 'keepalt tabedit '.s:fnameescape(msgfile)
elseif s:buffer().type() ==# 'index' elseif s:buffer().type() ==# 'index'
execute 'keepalt edit '.s:fnameescape(msgfile) execute 'keepalt edit '.s:fnameescape(msgfile)
execute (search('^#','n')+1).'wincmd+' execute (search('^#','n')+1).'wincmd+'