parent
b8b5272577
commit
e674a7e2f3
@ -42,6 +42,8 @@ that are part of Git repositories).
|
|||||||
C |:Gcommit|
|
C |:Gcommit|
|
||||||
D |:Gdiff|
|
D |:Gdiff|
|
||||||
ds |:Gsdiff|
|
ds |:Gsdiff|
|
||||||
|
dp |:Git!| diff (mnemonic: p for patch)
|
||||||
|
dp |:Git| add --intent-to-add (untracked files)
|
||||||
dv |:Gvdiff|
|
dv |:Gvdiff|
|
||||||
O |:Gtabedit|
|
O |:Gtabedit|
|
||||||
o |:Gsplit|
|
o |:Gsplit|
|
||||||
|
@ -577,18 +577,18 @@ function! fugitive#reload_status() abort
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:StageDiff(diff) abort
|
function! s:StageDiff(diff) abort
|
||||||
let section = getline(search('^# .*:$','bnW'))
|
let section = getline(search('^# .*:$','bcnW'))
|
||||||
let line = getline('.')
|
let line = getline('.')
|
||||||
let filename = matchstr(line,'^#\t\%([[:alpha:] ]\+: *\)\=\zs.\{-\}\ze\%( (new commits)\)\=$')
|
let filename = matchstr(line,'^#\t\%([[:alpha:] ]\+: *\)\=\zs.\{-\}\ze\%( (new commits)\)\=$')
|
||||||
if filename ==# '' && section == '# Changes to be committed:'
|
if filename ==# '' && section ==# '# Changes to be committed:'
|
||||||
return 'Git diff --cached'
|
return 'Git diff --cached'
|
||||||
elseif filename ==# ''
|
elseif filename ==# ''
|
||||||
return 'Git diff'
|
return 'Git diff'
|
||||||
elseif line =~# '^#\trenamed:' && filename =~ ' -> '
|
elseif line =~# '^#\trenamed:' && filename =~# ' -> '
|
||||||
let [old, new] = split(filename,' -> ')
|
let [old, new] = split(filename,' -> ')
|
||||||
execute 'Gedit '.s:fnameescape(':0:'.new)
|
execute 'Gedit '.s:fnameescape(':0:'.new)
|
||||||
return a:diff.' HEAD:'.s:fnameescape(old)
|
return a:diff.' HEAD:'.s:fnameescape(old)
|
||||||
elseif section == '# Changes to be committed:'
|
elseif section ==# '# Changes to be committed:'
|
||||||
execute 'Gedit '.s:fnameescape(':0:'.filename)
|
execute 'Gedit '.s:fnameescape(':0:'.filename)
|
||||||
return a:diff.' -'
|
return a:diff.' -'
|
||||||
else
|
else
|
||||||
@ -597,6 +597,20 @@ function! s:StageDiff(diff) abort
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:StageDiffEdit() abort
|
||||||
|
let section = getline(search('^# .*:$','bcnW'))
|
||||||
|
let line = getline('.')
|
||||||
|
let filename = matchstr(line,'^#\t\%([[:alpha:] ]\+: *\)\=\zs.\{-\}\ze\%( (new commits)\)\=$')
|
||||||
|
let args = (filename ==# '' ? '.' : s:shellesc(filename))
|
||||||
|
if section ==# '# Changes to be committed:'
|
||||||
|
return 'Git! diff --cached '.args
|
||||||
|
elseif section ==# '# Untracked files:'
|
||||||
|
return 'Git add -N '.args
|
||||||
|
else
|
||||||
|
return 'Git! diff '.args
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! s:StageToggle(lnum1,lnum2) abort
|
function! s:StageToggle(lnum1,lnum2) abort
|
||||||
try
|
try
|
||||||
let output = ''
|
let output = ''
|
||||||
@ -1755,6 +1769,7 @@ function! s:BufReadIndex()
|
|||||||
nnoremap <buffer> <silent> dd :<C-U>execute <SID>StageDiff('Gvdiff')<CR>
|
nnoremap <buffer> <silent> dd :<C-U>execute <SID>StageDiff('Gvdiff')<CR>
|
||||||
nnoremap <buffer> <silent> dh :<C-U>execute <SID>StageDiff('Gsdiff')<CR>
|
nnoremap <buffer> <silent> dh :<C-U>execute <SID>StageDiff('Gsdiff')<CR>
|
||||||
nnoremap <buffer> <silent> ds :<C-U>execute <SID>StageDiff('Gsdiff')<CR>
|
nnoremap <buffer> <silent> ds :<C-U>execute <SID>StageDiff('Gsdiff')<CR>
|
||||||
|
nnoremap <buffer> <silent> dp :<C-U>execute <SID>StageDiffEdit()<CR>
|
||||||
nnoremap <buffer> <silent> dv :<C-U>execute <SID>StageDiff('Gvdiff')<CR>
|
nnoremap <buffer> <silent> dv :<C-U>execute <SID>StageDiff('Gvdiff')<CR>
|
||||||
nnoremap <buffer> <silent> p :<C-U>execute <SID>StagePatch(line('.'),line('.')+v:count1-1)<CR>
|
nnoremap <buffer> <silent> p :<C-U>execute <SID>StagePatch(line('.'),line('.')+v:count1-1)<CR>
|
||||||
xnoremap <buffer> <silent> p :<C-U>execute <SID>StagePatch(line("'<"),line("'>"))<CR>
|
xnoremap <buffer> <silent> p :<C-U>execute <SID>StagePatch(line("'<"),line("'>"))<CR>
|
||||||
|
Loading…
Reference in New Issue
Block a user