Mercurial > vim
view src/testdir/test94.in @ 15612:e08d1aa308d8
Added tag v8.1.0813 for changeset bfcd7ffe9ac2b7ed03f321013363de56ab5b423b
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 24 Jan 2019 19:45:08 +0100 |
parents | ae45d497868f |
children |
line wrap: on
line source
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