" Motion for "next/last object". For example, "din(" would go to the next "()" pair | |
" and delete its contents. | |
onoremap an :<c-u>call <SID>NextTextObject('a', 'f')<cr> | |
xnoremap an :<c-u>call <SID>NextTextObject('a', 'f')<cr> | |
onoremap in :<c-u>call <SID>NextTextObject('i', 'f')<cr> | |
xnoremap in :<c-u>call <SID>NextTextObject('i', 'f')<cr> | |
onoremap al :<c-u>call <SID>NextTextObject('a', 'F')<cr> | |
xnoremap al :<c-u>call <SID>NextTextObject('a', 'F')<cr> | |
onoremap il :<c-u>call <SID>NextTextObject('i', 'F')<cr> | |
xnoremap il :<c-u>call <SID>NextTextObject('i', 'F')<cr> | |
function! s:NextTextObject(motion, dir) | |
let c = nr2char(getchar()) | |
if c ==# "b" | |
let c = "(" | |
elseif c ==# "B" | |
let c = "{" | |
elseif c ==# "d" | |
let c = "[" | |
endif | |
exe "normal! ".a:dir.c."v".a:motion.c | |
endfunction |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment