1
0
forked from aniani/vim
Files
vim/src/testdir/test94.in
Bram Moolenaar cfcd1ddd10 patch 7.4.931
Problem:    Test 94 fails on some systems.
Solution:   Set 'encoding' to utf-8.
2015-11-21 14:24:50 +01:00

257 lines
4.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 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