diff options
Diffstat (limited to '')
-rw-r--r-- | src/testdir/test94.in | 257 |
1 files changed, 257 insertions, 0 deletions
diff --git a/src/testdir/test94.in b/src/testdir/test94.in new file mode 100644 index 0000000..447fd2b --- /dev/null +++ b/src/testdir/test94.in @@ -0,0 +1,257 @@ +Test for Visual mode and operators + +Tests for the two kinds of operations: Those executed with Visual mode +followed by an operator and those executed via Operator-pending mode. Also +part of the test are mappings, counts, and repetition with the . command. + +Test cases: +- Visual modes (v V CTRL-V) followed by an operator; count; repeating +- Visual mode maps; count; repeating + - Simple + - With an Ex command (custom text object) +- Operator-pending mode maps + - Simple + - With Ex command moving the cursor + - With Ex command and Visual selection (custom text object) +- Patch 7.3.879: Properly abort Ex command in Operator-pending mode + +STARTTEST +:so small.vim +:set belloff=all +:set enc=utf-8 nocp viminfo+=nviminfo +: +:" User functions +:function MoveToCap() +: call search('\u', 'W') +:endfunction +:function SelectInCaps() +: let [line1, col1] = searchpos('\u', 'bcnW') +: let [line2, col2] = searchpos('.\u', 'nW') +: call setpos("'<", [0, line1, col1, 0]) +: call setpos("'>", [0, line2, col2, 0]) +: normal! gv +:endfunction +: +:" Visual modes followed by operator +/^apple +lvld.l3vd.: +/^line 1 +Vcnewlinej.j2Vd.: +/^xxxx +jlc l.l2c----l.: +: +:" Visual mode maps (movement and text object) +:vnoremap W /\u/s-1<CR> +:vnoremap iW :<C-U>call SelectInCaps()<CR> +/^Kiwi +vWcNol.fD2vd.: +/^Jambu +llviWc-l.l2vdl.: +: +:" Operator-pending mode maps (movement and text object) +:onoremap W /\u/<CR> +:onoremap <Leader>W :<C-U>call MoveToCap()<CR> +:onoremap iW :<C-U>call SelectInCaps()<CR> +/^Pineapple +cW-l.l2.l.: +/^Juniper +g?\WfD.: +/^Lemon +yiWPlciWNewfr.: +: +:" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc. +/^zzzz +dV:
dv:
:set noma | let v:errmsg = '' +d:
:set ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed' +dv:dV::set noma | let v:errmsg = '' +d::set ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok' +: +:$put ='' +:$put ='characterwise visual mode: replace last line' +:$put ='a' +:let @" = 'x' +:let v:errmsg = '' +v$p +:$put ='---' +:$put ='v:errmsg='.v:errmsg +: +:$put ='' +:$put ='characterwise visual mode: delete middle line' +:$put ='a' +:$put ='b' +:$put ='c' +kkv$d +:$put ='---' +: +:$put ='' +:$put ='characterwise visual mode: delete middle two line' +:$put ='a' +:$put ='b' +:$put ='c' +kkvj$d +:$put ='---' +: +:$put ='' +:$put ='characterwise visual mode: delete last line' +:$put ='a' +:$put ='b' +:$put ='c' +v$d +:$put ='---' +: +:$put ='' +:$put ='characterwise visual mode: delete last two line' +:$put ='a' +:$put ='b' +:$put ='c' +kvj$d +:$put ='---' +: +:" Select mode maps +:snoremap <lt>End> <End> +:snoremap <lt>Down> <Down> +:snoremap <lt>Del> <Del> +: +:$put ='' +:$put ='characterwise select mode: delete middle line' +:$put ='a' +:$put ='b' +:$put ='c' +kkgh<End><Del> +:$put ='---' +: +:$put ='' +:$put ='characterwise select mode: delete middle two line' +:$put ='a' +:$put ='b' +:$put ='c' +kkgh<Down><End><Del> +:$put ='---' +: +:$put ='' +:$put ='characterwise select mode: delete last line' +:$put ='a' +:$put ='b' +:$put ='c' +gh<End><Del> +:$put ='---' +: +:$put ='' +:$put ='characterwise select mode: delete last two line' +:$put ='a' +:$put ='b' +:$put ='c' +kgh<Down><End><Del> +:$put ='---' +: +:$put ='' +:$put ='linewise select mode: delete middle line' +:$put ='a' +:$put ='b' +:$put ='c' +kkgH<Del> +:$put ='---' +: +:$put ='' +:$put ='linewise select mode: delete middle two line' +:$put ='a' +:$put ='b' +:$put ='c' +kkgH<Down><Del> +:$put ='---' +: +:$put ='' +:$put ='linewise select mode: delete last line' +:$put ='a' +:$put ='b' +:$put ='c' +gH<Del> +:$put ='---' +: +:$put ='' +:$put ='linewise select mode: delete last two line' +:$put ='a' +:$put ='b' +:$put ='c' +kgH<Down><Del> +:$put ='---' +: +:$put ='' +:$put ='v_p: replace last character with line register at middle line' +:$put ='aaa' +:$put ='bbb' +:$put ='ccc' +:-2yank +k$vp +:$put ='---' +: +:$put ='' +:$put ='v_p: replace last character with line register at middle line selecting newline' +:$put ='aaa' +:$put ='bbb' +:$put ='ccc' +:-2yank +k$v$p +:$put ='---' +: +:$put ='' +:$put ='v_p: replace last character with line register at last line' +:$put ='aaa' +:$put ='bbb' +:$put ='ccc' +:-2yank +$vp +:$put ='---' +: +:$put ='' +:$put ='v_p: replace last character with line register at last line selecting newline' +:$put ='aaa' +:$put ='bbb' +:$put ='ccc' +:-2yank +$v$p +:$put ='---' +: +:$put ='' +:$put ='gv in exclusive select mode after operation' +:$put ='zzz ' +:$put ='äà ' +:set selection=exclusive +kv3lyjv3lpgvcxxx +:$put ='---' +: +:$put ='' +:$put ='gv in exclusive select mode without operation' +:$put ='zzz ' +:set selection=exclusive +0v3lgvcxxx +:$put ='---' +:/^start:/+2,$w! test.out +:q! +ENDTEST + +start: + +apple banana cherry + +line 1 line 1 +line 2 line 2 +line 3 line 3 +line 4 line 4 +line 5 line 5 +line 6 line 6 + +xxxxxxxxxxxxx +xxxxxxxxxxxxx +xxxxxxxxxxxxx +xxxxxxxxxxxxx + +KiwiRaspberryDateWatermelonPeach +JambuRambutanBananaTangerineMango + +PineappleQuinceLoganberryOrangeGrapefruitKiwiZ +JuniperDurianZ +LemonNectarineZ + +zzzz +zzzz |