mirror of
https://github.com/Raimondi/delimitMate.git
synced 2025-12-06 12:44:27 +08:00
Allow jumping over contiguous delimiters. Closes #44.
This commit is contained in:
@@ -346,6 +346,32 @@ function! delimitMate#JumpAny(key) " {{{
|
||||
endif
|
||||
endfunction " delimitMate#JumpAny() }}}
|
||||
|
||||
function! delimitMate#JumpMany() " {{{
|
||||
let line = getline('.')[col('.') - 1 : ]
|
||||
let len = len(line)
|
||||
let rights = ""
|
||||
let found = 0
|
||||
let i = 0
|
||||
while i < len
|
||||
let char = line[i]
|
||||
if index(b:_l_delimitMate_quotes_list, char) >= 0 ||
|
||||
\ index(b:_l_delimitMate_right_delims, char) >= 0
|
||||
let rights .= "\<Right>"
|
||||
let found = 1
|
||||
elseif found == 0
|
||||
let rights .= "\<Right>"
|
||||
else
|
||||
break
|
||||
endif
|
||||
let i += 1
|
||||
endwhile
|
||||
if found == 1
|
||||
return rights
|
||||
else
|
||||
return ''
|
||||
endif
|
||||
endfunction " delimitMate#JumpMany() }}}
|
||||
|
||||
function! delimitMate#MapMsg(msg) "{{{
|
||||
redraw
|
||||
echomsg a:msg
|
||||
@@ -461,7 +487,7 @@ function! delimitMate#TestMappings() "{{{
|
||||
\ b:_l_delimitMate_apostrophes_list +
|
||||
\ ['<BS>', '<S-BS>', '<Del>', '<S-Tab>', '<Esc>'] +
|
||||
\ ['<Up>', '<Down>', '<Left>', '<Right>', '<LeftMouse>', '<RightMouse>'] +
|
||||
\ ['<Home>', '<End>', '<PageUp>', '<PageDown>', '<S-Down>', '<S-Up>']
|
||||
\ ['<Home>', '<End>', '<PageUp>', '<PageDown>', '<S-Down>', '<S-Up>', '<C-G>g']
|
||||
let imaps = imaps + ( b:_l_delimitMate_expand_cr ? ['<CR>'] : [] )
|
||||
let imaps = imaps + ( b:_l_delimitMate_expand_space ? ['<Space>'] : [] )
|
||||
|
||||
|
||||
@@ -171,7 +171,7 @@ function! s:Unmap() " {{{
|
||||
\ b:_l_delimitMate_apostrophes_list +
|
||||
\ ['<BS>', '<S-BS>', '<Del>', '<CR>', '<Space>', '<S-Tab>', '<Esc>'] +
|
||||
\ ['<Up>', '<Down>', '<Left>', '<Right>', '<LeftMouse>', '<RightMouse>'] +
|
||||
\ ['<Home>', '<End>', '<PageUp>', '<PageDown>', '<S-Down>', '<S-Up>']
|
||||
\ ['<Home>', '<End>', '<PageUp>', '<PageDown>', '<S-Down>', '<S-Up>', '<C-G>g']
|
||||
|
||||
for map in imaps
|
||||
if maparg(map, "i") =~? 'delimitMate'
|
||||
@@ -353,6 +353,10 @@ function! s:ExtraMappings() "{{{
|
||||
endif
|
||||
endfor
|
||||
|
||||
" Jump over next delimiters
|
||||
inoremap <buffer> <Plug>delimitMateJumpMany <C-R>=len(b:_l_delimitMate_buffer) ? delimitMate#Finish(0) : delimitMate#JumpMany()<CR>
|
||||
imap <silent> <buffer> <C-G>g <Plug>delimitMateJumpMany
|
||||
|
||||
" Map away!
|
||||
if !hasmapto('<Plug>delimitMateDel', 'i')
|
||||
silent! imap <unique> <buffer> <Del> <Plug>delimitMateDel
|
||||
|
||||
Reference in New Issue
Block a user