diff --git a/autoload/fugitive.vim b/autoload/fugitive.vim index f7e3f0f..b2426f3 100644 --- a/autoload/fugitive.vim +++ b/autoload/fugitive.vim @@ -3010,6 +3010,7 @@ function! fugitive#MapJumps(...) abort nnoremap o :exe GF("split") nnoremap S :exe GF("vsplit") nnoremap O :exe GF("tabedit") + nnoremap p :exe GF("pedit") nnoremap - :exe Edit('edit',0,'',NavigateUp(v:count1)) if getline(1) =~# '^tree \x\{40\}$' && empty(getline(2))call search('^'.escape(expand('#:t'),'.*[]~\').'/\=$','wc')endif nnoremap P :exe Edit('edit',0,'',ContainingCommit().'^'.v:count1.Relative(':')) nnoremap ~ :exe Edit('edit',0,'',ContainingCommit().'~'.v:count1.Relative(':')) @@ -3214,7 +3215,11 @@ function! s:GF(mode) abort catch /^fugitive:/ return 'echoerr v:errmsg' endtry - if len(results) + if len(results) > 1 && a:mode ==# 'pedit' + return a:mode . + \ ' +' . join(map(results[1:-1], 'escape(v:val, " ")'), '\|') . ' ' . + \ s:fnameescape(s:Generate(results[0])) + elseif len(results) return s:Edit(a:mode, 0, '', results[0]).join(map(results[1:-1], '"|".v:val'), '') else return ''