Add next/previous section maps

This commit is contained in:
Tim Pope 2019-07-08 14:41:59 -04:00
parent 45fd3f4cb8
commit ebd7c9ddd3
2 changed files with 37 additions and 6 deletions

View File

@ -1730,6 +1730,8 @@ function! fugitive#BufReadStatus() abort
nunmap <buffer> ~ nunmap <buffer> ~
nnoremap <buffer> <silent> <C-N> :<C-U>execute <SID>StageNext(v:count1)<CR> nnoremap <buffer> <silent> <C-N> :<C-U>execute <SID>StageNext(v:count1)<CR>
nnoremap <buffer> <silent> <C-P> :<C-U>execute <SID>StagePrevious(v:count1)<CR> nnoremap <buffer> <silent> <C-P> :<C-U>execute <SID>StagePrevious(v:count1)<CR>
nnoremap <buffer> <silent> [[ :<C-U>execute <SID>PreviousSection(v:count1)<CR>
nnoremap <buffer> <silent> ]] :<C-U>execute <SID>NextSection(v:count1)<CR>
exe "nnoremap <buffer> <silent>" nowait "- :<C-U>execute <SID>Do('Toggle',0)<CR>" exe "nnoremap <buffer> <silent>" nowait "- :<C-U>execute <SID>Do('Toggle',0)<CR>"
exe "xnoremap <buffer> <silent>" nowait "- :<C-U>execute <SID>Do('Toggle',1)<CR>" exe "xnoremap <buffer> <silent>" nowait "- :<C-U>execute <SID>Do('Toggle',1)<CR>"
exe "nnoremap <buffer> <silent>" nowait "s :<C-U>execute <SID>Do('Stage',0)<CR>" exe "nnoremap <buffer> <silent>" nowait "s :<C-U>execute <SID>Do('Stage',0)<CR>"
@ -2565,6 +2567,29 @@ function! s:StagePrevious(count) abort
endif endif
endfunction endfunction
function! s:NextSection(count) abort
for i in range(a:count)
if !search('^[A-Z][a-z][^:]*$','W')
return '.'
endif
+
endfor
call s:StageReveal()
return '.'
endfunction
function! s:PreviousSection(count) abort
-
for i in range(a:count)
if !search('^[A-Z][a-z][^:]*$\|\%^','bW') || line('.') == 1
return '.'
endif
+
endfor
call s:StageReveal()
return '.'
endfunction
function! s:StageInline(mode, ...) abort function! s:StageInline(mode, ...) abort
let lnum1 = a:0 ? a:1 : line('.') let lnum1 = a:0 ? a:1 : line('.')
let lnum = lnum1 + 1 let lnum = lnum1 + 1

View File

@ -249,12 +249,6 @@ u Unstage (reset) the file or hunk under the cursor.
*fugitive_-* *fugitive_-*
- Stage or unstage the file or hunk under the cursor. - Stage or unstage the file or hunk under the cursor.
*fugitive_CTRL-N*
<C-N> Skip to the next file or hunk.
*fugitive_CTRL-P*
<C-P> Skip to the previous file or hunk.
*fugitive_X* *fugitive_X*
X Discard the change under the cursor. This uses X Discard the change under the cursor. This uses
`checkout` or `clean` under the hood. A command is `checkout` or `clean` under the hood. A command is
@ -327,6 +321,18 @@ C Open the commit containing the current file.
<C-W>C Open the commit containing the current file in a new <C-W>C Open the commit containing the current file in a new
split. split.
*fugitive_CTRL-P*
<C-P> Jump to the previous file or hunk.
*fugitive_CTRL-N*
<C-N> Jump to the next file or hunk.
*fugitive_[[*
[[ Jump to the previous section.
*fugitive_]]*
]] Jump to the next section.
*fugitive_gu* *fugitive_gu*
gu Jump to "Unstaged" section. gu Jump to "Unstaged" section.