annotate src/testdir/test_visual.vim @ 24384:7416c47af1a5

Added tag v8.2.2732 for changeset ea2b697ddea8f7380e349bf89609e4c06bba1452
author Bram Moolenaar <Bram@vim.org>
date Wed, 07 Apr 2021 19:45:04 +0200
parents 1503ecd54f8a
children 3cdbce5ba73f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18825
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
1 " Tests for various Visual modes.
11091
ae45d497868f patch 8.0.0433: beeps when running tests
Christian Brabandt <cb@256bit.org>
parents: 10900
diff changeset
2
22502
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
3 source shared.vim
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
4
8401
98955c2ffd9f commit https://github.com/vim/vim/commit/019b9c644e92742e37efc08fef47c2620a01b6b3
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 func Test_block_shift_multibyte()
10494
1e700d72561d commit https://github.com/vim/vim/commit/f8eb9c51e5bbd10e59c9b1247f8f6c7f5b77ccd0
Christian Brabandt <cb@256bit.org>
parents: 9618
diff changeset
6 " Uses double-wide character.
8401
98955c2ffd9f commit https://github.com/vim/vim/commit/019b9c644e92742e37efc08fef47c2620a01b6b3
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 split
98955c2ffd9f commit https://github.com/vim/vim/commit/019b9c644e92742e37efc08fef47c2620a01b6b3
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 call setline(1, ['xヹxxx', 'ヹxxx'])
98955c2ffd9f commit https://github.com/vim/vim/commit/019b9c644e92742e37efc08fef47c2620a01b6b3
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 exe "normal 1G0l\<C-V>jl>"
98955c2ffd9f commit https://github.com/vim/vim/commit/019b9c644e92742e37efc08fef47c2620a01b6b3
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 call assert_equal('x ヹxxx', getline(1))
98955c2ffd9f commit https://github.com/vim/vim/commit/019b9c644e92742e37efc08fef47c2620a01b6b3
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 call assert_equal(' ヹxxx', getline(2))
98955c2ffd9f commit https://github.com/vim/vim/commit/019b9c644e92742e37efc08fef47c2620a01b6b3
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 q!
98955c2ffd9f commit https://github.com/vim/vim/commit/019b9c644e92742e37efc08fef47c2620a01b6b3
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 endfunc
10494
1e700d72561d commit https://github.com/vim/vim/commit/f8eb9c51e5bbd10e59c9b1247f8f6c7f5b77ccd0
Christian Brabandt <cb@256bit.org>
parents: 9618
diff changeset
14
11997
66b677c77467 patch 8.0.0879: crash when shifting with huge number
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
15 func Test_block_shift_overflow()
66b677c77467 patch 8.0.0879: crash when shifting with huge number
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
16 " This used to cause a multiplication overflow followed by a crash.
66b677c77467 patch 8.0.0879: crash when shifting with huge number
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
17 new
66b677c77467 patch 8.0.0879: crash when shifting with huge number
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
18 normal ii
66b677c77467 patch 8.0.0879: crash when shifting with huge number
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
19 exe "normal \<C-V>876543210>"
66b677c77467 patch 8.0.0879: crash when shifting with huge number
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
20 q!
66b677c77467 patch 8.0.0879: crash when shifting with huge number
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
21 endfunc
66b677c77467 patch 8.0.0879: crash when shifting with huge number
Christian Brabandt <cb@256bit.org>
parents: 11091
diff changeset
22
10494
1e700d72561d commit https://github.com/vim/vim/commit/f8eb9c51e5bbd10e59c9b1247f8f6c7f5b77ccd0
Christian Brabandt <cb@256bit.org>
parents: 9618
diff changeset
23 func Test_dotregister_paste()
1e700d72561d commit https://github.com/vim/vim/commit/f8eb9c51e5bbd10e59c9b1247f8f6c7f5b77ccd0
Christian Brabandt <cb@256bit.org>
parents: 9618
diff changeset
24 new
1e700d72561d commit https://github.com/vim/vim/commit/f8eb9c51e5bbd10e59c9b1247f8f6c7f5b77ccd0
Christian Brabandt <cb@256bit.org>
parents: 9618
diff changeset
25 exe "norm! ihello world\<esc>"
1e700d72561d commit https://github.com/vim/vim/commit/f8eb9c51e5bbd10e59c9b1247f8f6c7f5b77ccd0
Christian Brabandt <cb@256bit.org>
parents: 9618
diff changeset
26 norm! 0ve".p
1e700d72561d commit https://github.com/vim/vim/commit/f8eb9c51e5bbd10e59c9b1247f8f6c7f5b77ccd0
Christian Brabandt <cb@256bit.org>
parents: 9618
diff changeset
27 call assert_equal('hello world world', getline(1))
1e700d72561d commit https://github.com/vim/vim/commit/f8eb9c51e5bbd10e59c9b1247f8f6c7f5b77ccd0
Christian Brabandt <cb@256bit.org>
parents: 9618
diff changeset
28 q!
1e700d72561d commit https://github.com/vim/vim/commit/f8eb9c51e5bbd10e59c9b1247f8f6c7f5b77ccd0
Christian Brabandt <cb@256bit.org>
parents: 9618
diff changeset
29 endfunc
10803
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
30
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
31 func Test_Visual_ctrl_o()
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
32 new
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
33 call setline(1, ['one', 'two', 'three'])
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
34 call cursor(1,2)
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
35 set noshowmode
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
36 set tw=0
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
37 call feedkeys("\<c-v>jjlIa\<c-\>\<c-o>:set tw=88\<cr>\<esc>", 'tx')
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
38 call assert_equal(['oane', 'tawo', 'tahree'], getline(1, 3))
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
39 call assert_equal(88, &tw)
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
40 set tw&
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
41 bw!
065da86ca6d2 patch 8.0.0291: Visual block insertion does not insert in all lines
Christian Brabandt <cb@256bit.org>
parents: 10494
diff changeset
42 endfu
10881
8f6df2f6d2fc patch 8.0.0330: illegal memory access after "vapo"
Christian Brabandt <cb@256bit.org>
parents: 10803
diff changeset
43
8f6df2f6d2fc patch 8.0.0330: illegal memory access after "vapo"
Christian Brabandt <cb@256bit.org>
parents: 10803
diff changeset
44 func Test_Visual_vapo()
8f6df2f6d2fc patch 8.0.0330: illegal memory access after "vapo"
Christian Brabandt <cb@256bit.org>
parents: 10803
diff changeset
45 new
8f6df2f6d2fc patch 8.0.0330: illegal memory access after "vapo"
Christian Brabandt <cb@256bit.org>
parents: 10803
diff changeset
46 normal oxx
8f6df2f6d2fc patch 8.0.0330: illegal memory access after "vapo"
Christian Brabandt <cb@256bit.org>
parents: 10803
diff changeset
47 normal vapo
8f6df2f6d2fc patch 8.0.0330: illegal memory access after "vapo"
Christian Brabandt <cb@256bit.org>
parents: 10803
diff changeset
48 bwipe!
8f6df2f6d2fc patch 8.0.0330: illegal memory access after "vapo"
Christian Brabandt <cb@256bit.org>
parents: 10803
diff changeset
49 endfunc
10900
9b4574d95571 patch 8.0.0339: illegal memory access with vi'
Christian Brabandt <cb@256bit.org>
parents: 10881
diff changeset
50
9b4574d95571 patch 8.0.0339: illegal memory access with vi'
Christian Brabandt <cb@256bit.org>
parents: 10881
diff changeset
51 func Test_Visual_inner_quote()
9b4574d95571 patch 8.0.0339: illegal memory access with vi'
Christian Brabandt <cb@256bit.org>
parents: 10881
diff changeset
52 new
9b4574d95571 patch 8.0.0339: illegal memory access with vi'
Christian Brabandt <cb@256bit.org>
parents: 10881
diff changeset
53 normal oxX
9b4574d95571 patch 8.0.0339: illegal memory access with vi'
Christian Brabandt <cb@256bit.org>
parents: 10881
diff changeset
54 normal vki'
9b4574d95571 patch 8.0.0339: illegal memory access with vi'
Christian Brabandt <cb@256bit.org>
parents: 10881
diff changeset
55 bwipe!
9b4574d95571 patch 8.0.0339: illegal memory access with vi'
Christian Brabandt <cb@256bit.org>
parents: 10881
diff changeset
56 endfunc
12019
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
57
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
58 " Test for Visual mode not being reset causing E315 error.
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
59 func TriggerTheProblem()
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
60 " At this point there is no visual selection because :call reset it.
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
61 " Let's restore the selection:
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
62 normal gv
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
63 '<,'>del _
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
64 try
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
65 exe "normal \<Esc>"
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
66 catch /^Vim\%((\a\+)\)\=:E315/
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
67 echom 'Snap! E315 error!'
13402
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
68 let g:msg = 'Snap! E315 error!'
12019
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
69 endtry
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
70 endfunc
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
71
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
72 func Test_visual_mode_reset()
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
73 enew
13402
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
74 let g:msg = "Everything's fine."
12019
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
75 enew
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
76 setl buftype=nofile
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
77 call append(line('$'), 'Delete this line.')
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
78
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
79 " NOTE: this has to be done by a call to a function because executing :del
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
80 " the ex-way will require the colon operator which resets the visual mode
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
81 " thus preventing the problem:
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
82 exe "normal! GV:call TriggerTheProblem()\<CR>"
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
83 call assert_equal("Everything's fine.", g:msg)
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
84
7d7835ab8b37 patch 8.0.0890: still many old style tests
Christian Brabandt <cb@256bit.org>
parents: 11997
diff changeset
85 endfunc
12644
1fad9675d8fd patch 8.0.1200: tests switch the bell off twice
Christian Brabandt <cb@256bit.org>
parents: 12019
diff changeset
86
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
87 " Test for visual block shift and tab characters.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
88 func Test_block_shift_tab()
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
89 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
90 call append(0, repeat(['one two three'], 5))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
91 call cursor(1,1)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
92 exe "normal i\<C-G>u"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
93 exe "normal fe\<C-V>4jR\<Esc>ugvr1"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
94 call assert_equal('on1 two three', getline(1))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
95 call assert_equal('on1 two three', getline(2))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
96 call assert_equal('on1 two three', getline(5))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
97
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
98 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
99 call append(0, repeat(['abcdefghijklmnopqrstuvwxyz'], 5))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
100 call cursor(1,1)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
101 exe "normal \<C-V>4jI \<Esc>j<<11|D"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
102 exe "normal j7|a\<Tab>\<Tab>"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
103 exe "normal j7|a\<Tab>\<Tab> "
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
104 exe "normal j7|a\<Tab> \<Tab>\<Esc>4k13|\<C-V>4j<"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
105 call assert_equal(' abcdefghijklmnopqrstuvwxyz', getline(1))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
106 call assert_equal('abcdefghij', getline(2))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
107 call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(3))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
108 call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(4))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
109 call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(5))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
110
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
111 %s/\s\+//g
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
112 call cursor(1,1)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
113 exe "normal \<C-V>4jI \<Esc>j<<"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
114 exe "normal j7|a\<Tab>\<Tab>"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
115 exe "normal j7|a\<Tab>\<Tab>\<Tab>\<Tab>\<Tab>"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
116 exe "normal j7|a\<Tab> \<Tab>\<Tab>\<Esc>4k13|\<C-V>4j3<"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
117 call assert_equal(' abcdefghijklmnopqrstuvwxyz', getline(1))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
118 call assert_equal('abcdefghij', getline(2))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
119 call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(3))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
120 call assert_equal(" abc\<Tab>\<Tab>defghijklmnopqrstuvwxyz", getline(4))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
121 call assert_equal(" abc\<Tab> defghijklmnopqrstuvwxyz", getline(5))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
122
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
123 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
124 endfunc
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
125
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
126 " Tests Blockwise Visual when there are TABs before the text.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
127 func Test_blockwise_visual()
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
128 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
129 call append(0, ['123456',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
130 \ '234567',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
131 \ '345678',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
132 \ '',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
133 \ 'test text test tex start here',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
134 \ "\t\tsome text",
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
135 \ "\t\ttest text",
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
136 \ 'test text'])
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
137 call cursor(1,1)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
138 exe "normal /start here$\<CR>"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
139 exe 'normal "by$' . "\<C-V>jjlld"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
140 exe "normal /456$\<CR>"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
141 exe "normal \<C-V>jj" . '"bP'
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
142 call assert_equal(['123start here56',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
143 \ '234start here67',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
144 \ '345start here78',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
145 \ '',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
146 \ 'test text test tex rt here',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
147 \ "\t\tsomext",
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
148 \ "\t\ttesext"], getline(1, 7))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
149
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
150 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
151 endfunc
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
152
13978
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
153 " Test swapping corners in blockwise visual mode with o and O
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
154 func Test_blockwise_visual_o_O()
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
155 enew!
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
156
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
157 exe "norm! 10i.\<Esc>Y4P3lj\<C-V>4l2jr "
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
158 exe "norm! gvO\<Esc>ra"
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
159 exe "norm! gvO\<Esc>rb"
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
160 exe "norm! gvo\<C-c>rc"
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
161 exe "norm! gvO\<C-c>rd"
19625
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
162 set selection=exclusive
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
163 exe "norm! gvOo\<C-c>re"
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
164 call assert_equal('...a be.', getline(4))
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
165 exe "norm! gvOO\<C-c>rf"
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
166 set selection&
13978
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
167
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
168 call assert_equal(['..........',
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
169 \ '...c d..',
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
170 \ '... ..',
19625
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
171 \ '...a bf.',
13978
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
172 \ '..........'], getline(1, '$'))
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
173
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
174 enew!
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
175 endfun
81c324144452 patch 8.1.0007: no test for "o" and "O" in Visual block mode
Christian Brabandt <cb@256bit.org>
parents: 13410
diff changeset
176
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
177 " Test Virtual replace mode.
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
178 func Test_virtual_replace()
13410
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
179 if exists('&t_kD')
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
180 let save_t_kD = &t_kD
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
181 endif
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
182 if exists('&t_kb')
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
183 let save_t_kb = &t_kb
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
184 endif
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
185 exe "set t_kD=\<C-V>x7f t_kb=\<C-V>x08"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
186 enew!
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
187 exe "normal a\nabcdefghi\njk\tlmn\n opq rst\n\<C-D>uvwxyz"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
188 call cursor(1,1)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
189 set ai bs=2
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
190 exe "normal gR0\<C-D> 1\nA\nBCDEFGHIJ\n\tKL\nMNO\nPQR"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
191 call assert_equal([' 1',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
192 \ ' A',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
193 \ ' BCDEFGHIJ',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
194 \ ' KL',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
195 \ ' MNO',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
196 \ ' PQR',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
197 \ ], getline(1, 6))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
198 normal G
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
199 mark a
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
200 exe "normal o0\<C-D>\nabcdefghi\njk\tlmn\n opq\trst\n\<C-D>uvwxyz\n"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
201 exe "normal 'ajgR0\<C-D> 1\nA\nBCDEFGHIJ\n\tKL\nMNO\nPQR" . repeat("\<BS>", 29)
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
202 call assert_equal([' 1',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
203 \ 'abcdefghi',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
204 \ 'jk lmn',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
205 \ ' opq rst',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
206 \ 'uvwxyz'], getline(7, 11))
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
207 normal G
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
208 exe "normal iab\tcdefghi\tjkl"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
209 exe "normal 0gRAB......CDEFGHI.J\<Esc>o"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
210 exe "normal iabcdefghijklmnopqrst\<Esc>0gRAB\tIJKLMNO\tQR"
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
211 call assert_equal(['AB......CDEFGHI.Jkl',
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
212 \ 'AB IJKLMNO QRst'], getline(12, 13))
20941
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
213
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
214 " Test inserting Tab with 'noexpandtab' and 'softabstop' set to 4
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
215 %d
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
216 call setline(1, 'aaaaaaaaaaaaa')
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
217 set softtabstop=4
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
218 exe "normal gggR\<Tab>\<Tab>x"
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
219 call assert_equal("\txaaaa", getline(1))
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
220 set softtabstop&
505d97ea54da patch 8.2.1022: various parts of code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 20199
diff changeset
221
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
222 enew!
13406
4e30f3f4cb78 patch 8.0.1577: virtual replace test fails on MS-Windows
Christian Brabandt <cb@256bit.org>
parents: 13402
diff changeset
223 set noai bs&vim
13410
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
224 if exists('save_t_kD')
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
225 let &t_kD = save_t_kD
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
226 endif
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
227 if exists('save_t_kb')
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
228 let &t_kb = save_t_kb
c571356c65bd patch 8.0.1579: virtual replace test fails in GUI
Christian Brabandt <cb@256bit.org>
parents: 13406
diff changeset
229 endif
12686
aa658b33f25a patch 8.0.1221: still too many old style tests
Christian Brabandt <cb@256bit.org>
parents: 12644
diff changeset
230 endfunc
13402
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
231
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
232 " Test Virtual replace mode.
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
233 func Test_virtual_replace2()
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
234 enew!
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
235 set bs=2
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
236 exe "normal a\nabcdefghi\njk\tlmn\n opq rst\n\<C-D>uvwxyz"
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
237 call cursor(1,1)
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
238 " Test 1: Test that del deletes the newline
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
239 exe "normal gR0\<del> 1\nA\nBCDEFGHIJ\n\tKL\nMNO\nPQR"
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
240 call assert_equal(['0 1',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
241 \ 'A',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
242 \ 'BCDEFGHIJ',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
243 \ ' KL',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
244 \ 'MNO',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
245 \ 'PQR',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
246 \ ], getline(1, 6))
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
247 " Test 2:
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
248 " a newline is not deleted, if no newline has been added in virtual replace mode
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
249 %d_
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
250 call setline(1, ['abcd', 'efgh', 'ijkl'])
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
251 call cursor(2,1)
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
252 exe "norm! gR1234\<cr>5\<bs>\<bs>\<bs>"
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
253 call assert_equal(['abcd',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
254 \ '123h',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
255 \ 'ijkl'], getline(1, '$'))
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
256 " Test 3:
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
257 " a newline is deleted, if a newline has been inserted before in virtual replace mode
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
258 %d_
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
259 call setline(1, ['abcd', 'efgh', 'ijkl'])
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
260 call cursor(2,1)
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
261 exe "norm! gR1234\<cr>\<cr>56\<bs>\<bs>\<bs>"
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
262 call assert_equal(['abcd',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
263 \ '1234',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
264 \ 'ijkl'], getline(1, '$'))
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
265 " Test 4:
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
266 " delete add a newline, delete it, add it again and check undo
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
267 %d_
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
268 call setline(1, ['abcd', 'efgh', 'ijkl'])
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
269 call cursor(2,1)
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
270 " break undo sequence explicitly
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
271 let &ul = &ul
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
272 exe "norm! gR1234\<cr>\<bs>\<del>56\<cr>"
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
273 let &ul = &ul
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
274 call assert_equal(['abcd',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
275 \ '123456',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
276 \ ''], getline(1, '$'))
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
277 norm! u
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
278 call assert_equal(['abcd',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
279 \ 'efgh',
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
280 \ 'ijkl'], getline(1, '$'))
19852
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19738
diff changeset
281
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19738
diff changeset
282 " Test for truncating spaces in a newly added line using 'autoindent' if
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19738
diff changeset
283 " characters are not added to that line.
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19738
diff changeset
284 %d_
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19738
diff changeset
285 call setline(1, [' app', ' bee', ' cat'])
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19738
diff changeset
286 setlocal autoindent
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19738
diff changeset
287 exe "normal gg$gRt\n\nr"
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19738
diff changeset
288 call assert_equal([' apt', '', ' rat'], getline(1, '$'))
12518b40c161 patch 8.2.0482: channel and sandbox code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19738
diff changeset
289
13402
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
290 " clean up
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
291 %d_
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
292 set bs&vim
338b15c63e2c patch 8.0.1575: crash when using virtual replace
Christian Brabandt <cb@256bit.org>
parents: 12686
diff changeset
293 endfunc
15359
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
294
15462
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
295 func Test_Visual_word_textobject()
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
296 new
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
297 call setline(1, ['First sentence. Second sentence.'])
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
298
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
299 " When start and end of visual area are identical, 'aw' or 'iw' select
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
300 " the whole word.
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
301 norm! 1go2fcvawy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
302 call assert_equal('Second ', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
303 norm! 1go2fcviwy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
304 call assert_equal('Second', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
305
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
306 " When start and end of visual area are not identical, 'aw' or 'iw'
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
307 " extend the word in direction of the end of the visual area.
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
308 norm! 1go2fcvlawy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
309 call assert_equal('cond ', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
310 norm! gv2awy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
311 call assert_equal('cond sentence.', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
312
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
313 norm! 1go2fcvliwy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
314 call assert_equal('cond', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
315 norm! gv2iwy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
316 call assert_equal('cond sentence', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
317
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
318 " Extend visual area in opposite direction.
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
319 norm! 1go2fcvhawy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
320 call assert_equal(' Sec', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
321 norm! gv2awy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
322 call assert_equal(' sentence. Sec', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
323
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
324 norm! 1go2fcvhiwy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
325 call assert_equal('Sec', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
326 norm! gv2iwy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
327 call assert_equal('. Sec', @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
328
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
329 bwipe!
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
330 endfunc
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
331
15359
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
332 func Test_Visual_sentence_textobject()
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
333 new
15462
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
334 call setline(1, ['First sentence. Second sentence. Third', 'sentence. Fourth sentence'])
15359
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
335
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
336 " When start and end of visual area are identical, 'as' or 'is' select
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
337 " the whole sentence.
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
338 norm! 1gofdvasy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
339 call assert_equal('Second sentence. ', @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
340 norm! 1gofdvisy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
341 call assert_equal('Second sentence.', @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
342
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
343 " When start and end of visual area are not identical, 'as' or 'is'
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
344 " extend the sentence in direction of the end of the visual area.
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
345 norm! 1gofdvlasy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
346 call assert_equal('d sentence. ', @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
347 norm! gvasy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
348 call assert_equal("d sentence. Third\nsentence. ", @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
349
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
350 norm! 1gofdvlisy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
351 call assert_equal('d sentence.', @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
352 norm! gvisy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
353 call assert_equal('d sentence. ', @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
354 norm! gvisy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
355 call assert_equal("d sentence. Third\nsentence.", @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
356
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
357 " Extend visual area in opposite direction.
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
358 norm! 1gofdvhasy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
359 call assert_equal(' Second', @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
360 norm! gvasy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
361 call assert_equal("First sentence. Second", @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
362
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
363 norm! 1gofdvhisy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
364 call assert_equal('Second', @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
365 norm! gvisy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
366 call assert_equal(' Second', @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
367 norm! gvisy
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
368 call assert_equal('First sentence. Second', @")
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
369
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
370 bwipe!
bdf5f546eba0 patch 8.1.0687: sentence text object in Visual mode is not tested
Bram Moolenaar <Bram@vim.org>
parents: 13978
diff changeset
371 endfunc
15462
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
372
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
373 func Test_Visual_paragraph_textobject()
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
374 new
22476
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
375 let lines =<< trim [END]
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
376 First line.
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
377
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
378 Second line.
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
379 Third line.
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
380 Fourth line.
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
381 Fifth line.
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
382
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
383 Sixth line.
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
384 [END]
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
385 call setline(1, lines)
15462
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
386
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
387 " When start and end of visual area are identical, 'ap' or 'ip' select
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
388 " the whole paragraph.
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
389 norm! 4ggvapy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
390 call assert_equal("Second line.\nThird line.\nFourth line.\nFifth line.\n\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
391 norm! 4ggvipy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
392 call assert_equal("Second line.\nThird line.\nFourth line.\nFifth line.\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
393
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
394 " When start and end of visual area are not identical, 'ap' or 'ip'
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
395 " extend the sentence in direction of the end of the visual area.
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
396 " FIXME: actually, it is not sufficient to have different start and
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
397 " end of visual selection, the start line and end line have to differ,
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
398 " which is not consistent with the documentation.
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
399 norm! 4ggVjapy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
400 call assert_equal("Third line.\nFourth line.\nFifth line.\n\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
401 norm! gvapy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
402 call assert_equal("Third line.\nFourth line.\nFifth line.\n\nSixth line.\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
403 norm! 4ggVjipy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
404 call assert_equal("Third line.\nFourth line.\nFifth line.\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
405 norm! gvipy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
406 call assert_equal("Third line.\nFourth line.\nFifth line.\n\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
407 norm! gvipy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
408 call assert_equal("Third line.\nFourth line.\nFifth line.\n\nSixth line.\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
409
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
410 " Extend visual area in opposite direction.
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
411 norm! 5ggVkapy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
412 call assert_equal("\nSecond line.\nThird line.\nFourth line.\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
413 norm! gvapy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
414 call assert_equal("First line.\n\nSecond line.\nThird line.\nFourth line.\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
415 norm! 5ggVkipy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
416 call assert_equal("Second line.\nThird line.\nFourth line.\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
417 norma gvipy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
418 call assert_equal("\nSecond line.\nThird line.\nFourth line.\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
419 norm! gvipy
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
420 call assert_equal("First line.\n\nSecond line.\nThird line.\nFourth line.\n", @")
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
421
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
422 bwipe!
2c44001e7e13 patch 8.1.0739: text objects in not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 15359
diff changeset
423 endfunc
15985
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
424
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
425 func Test_curswant_not_changed()
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
426 new
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
427 call setline(1, ['one', 'two'])
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
428 au InsertLeave * call getcurpos()
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
429 call feedkeys("gg0\<C-V>jI123 \<Esc>j", 'xt')
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
430 call assert_equal([0, 2, 1, 0, 1], getcurpos())
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
431
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
432 bwipe!
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
433 au! InsertLeave
e91750e8adb5 patch 8.1.0998: getcurpos() unexpectedly changes "curswant"
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
434 endfunc
16419
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
435
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
436 " Tests for "vaBiB", end could be wrong.
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
437 func Test_Visual_Block()
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
438 new
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
439 a
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
440 - Bug in "vPPPP" on this text:
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
441 {
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
442 cmd;
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
443 {
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
444 cmd;\t/* <-- Start cursor here */
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
445 {
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
446 }
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
447 }
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
448 }
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
449 .
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
450 normal gg
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
451 call search('Start cursor here')
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
452 normal vaBiBD
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
453 call assert_equal(['- Bug in "vPPPP" on this text:',
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
454 \ "\t{",
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
455 \ "\t}"], getline(1, '$'))
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
456
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
457 close!
aebcd20a8a3f patch 8.1.1214: old style tests
Bram Moolenaar <Bram@vim.org>
parents: 15985
diff changeset
458 endfunc
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
459
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
460 " Test for 'p'ut in visual block mode
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
461 func Test_visual_block_put()
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
462 enew
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
463
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
464 call append(0, ['One', 'Two', 'Three'])
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
465 normal gg
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
466 yank
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
467 call feedkeys("jl\<C-V>ljp", 'xt')
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
468 call assert_equal(['One', 'T', 'Tee', 'One', ''], getline(1, '$'))
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
469
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
470 enew!
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
471 endfunc
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
472
18804
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
473 " Visual modes (v V CTRL-V) followed by an operator; count; repeating
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
474 func Test_visual_mode_op()
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
475 new
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
476 call append(0, '')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
477
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
478 call setline(1, 'apple banana cherry')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
479 call cursor(1, 1)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
480 normal lvld.l3vd.
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
481 call assert_equal('a y', getline(1))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
482
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
483 call setline(1, ['line 1 line 1', 'line 2 line 2', 'line 3 line 3',
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
484 \ 'line 4 line 4', 'line 5 line 5', 'line 6 line 6'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
485 call cursor(1, 1)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
486 exe "normal Vcnewline\<Esc>j.j2Vd."
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
487 call assert_equal(['newline', 'newline'], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
488
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
489 call deletebufline('', 1, '$')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
490 call setline(1, ['xxxxxxxxxxxxx', 'xxxxxxxxxxxxx', 'xxxxxxxxxxxxx',
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
491 \ 'xxxxxxxxxxxxx'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
492 exe "normal \<C-V>jlc \<Esc>l.l2\<C-V>c----\<Esc>l."
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
493 call assert_equal([' --------x',
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
494 \ ' --------x',
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
495 \ 'xxxx--------x',
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
496 \ 'xxxx--------x'], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
497
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
498 bwipe!
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
499 endfunc
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
500
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
501 " Visual mode maps (movement and text object)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
502 " Visual mode maps; count; repeating
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
503 " - Simple
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
504 " - With an Ex command (custom text object)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
505 func Test_visual_mode_maps()
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
506 new
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
507 call append(0, '')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
508
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
509 func SelectInCaps()
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
510 let [line1, col1] = searchpos('\u', 'bcnW')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
511 let [line2, col2] = searchpos('.\u', 'nW')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
512 call setpos("'<", [0, line1, col1, 0])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
513 call setpos("'>", [0, line2, col2, 0])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
514 normal! gv
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
515 endfunction
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
516
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
517 vnoremap W /\u/s-1<CR>
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
518 vnoremap iW :<C-U>call SelectInCaps()<CR>
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
519
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
520 call setline(1, 'KiwiRaspberryDateWatermelonPeach')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
521 call cursor(1, 1)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
522 exe "normal vWcNo\<Esc>l.fD2vd."
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
523 call assert_equal('NoNoberryach', getline(1))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
524
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
525 call setline(1, 'JambuRambutanBananaTangerineMango')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
526 call cursor(1, 1)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
527 exe "normal llviWc-\<Esc>l.l2vdl."
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
528 call assert_equal('--ago', getline(1))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
529
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
530 vunmap W
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
531 vunmap iW
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
532 bwipe!
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
533 delfunc SelectInCaps
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
534 endfunc
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
535
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
536 " Operator-pending mode maps (movement and text object)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
537 " - Simple
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
538 " - With Ex command moving the cursor
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
539 " - With Ex command and Visual selection (custom text object)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
540 func Test_visual_oper_pending_mode_maps()
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
541 new
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
542 call append(0, '')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
543
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
544 func MoveToCap()
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
545 call search('\u', 'W')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
546 endfunction
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
547
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
548 func SelectInCaps()
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
549 let [line1, col1] = searchpos('\u', 'bcnW')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
550 let [line2, col2] = searchpos('.\u', 'nW')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
551 call setpos("'<", [0, line1, col1, 0])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
552 call setpos("'>", [0, line2, col2, 0])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
553 normal! gv
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
554 endfunction
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
555
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
556 onoremap W /\u/<CR>
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
557 onoremap <Leader>W :<C-U>call MoveToCap()<CR>
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
558 onoremap iW :<C-U>call SelectInCaps()<CR>
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
559
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
560 call setline(1, 'PineappleQuinceLoganberryOrangeGrapefruitKiwiZ')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
561 call cursor(1, 1)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
562 exe "normal cW-\<Esc>l.l2.l."
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
563 call assert_equal('----Z', getline(1))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
564
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
565 call setline(1, 'JuniperDurianZ')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
566 call cursor(1, 1)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
567 exe "normal g?\WfD."
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
568 call assert_equal('WhavcreQhevnaZ', getline(1))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
569
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
570 call setline(1, 'LemonNectarineZ')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
571 call cursor(1, 1)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
572 exe "normal yiWPlciWNew\<Esc>fr."
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
573 call assert_equal('LemonNewNewZ', getline(1))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
574
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
575 ounmap W
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
576 ounmap <Leader>W
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
577 ounmap iW
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
578 bwipe!
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
579 delfunc MoveToCap
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
580 delfunc SelectInCaps
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
581 endfunc
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
582
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
583 " Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
584 func Test_op_pend_mode_abort()
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
585 new
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
586 call append(0, '')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
587
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
588 call setline(1, ['zzzz', 'zzzz'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
589 call cursor(1, 1)
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
590
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
591 exe "normal dV:\<CR>dv:\<CR>"
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
592 call assert_equal(['zzz'], getline(1, 2))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
593 set nomodifiable
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
594 call assert_fails('exe "normal d:\<CR>"', 'E21:')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
595 set modifiable
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
596 call feedkeys("dv:\<Esc>dV:\<Esc>", 'xt')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
597 call assert_equal(['zzz'], getline(1, 2))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
598 set nomodifiable
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
599 let v:errmsg = ''
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
600 call feedkeys("d:\<Esc>", 'xt')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
601 call assert_true(v:errmsg !~# '^E21:')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
602 set modifiable
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
603
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
604 bwipe!
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
605 endfunc
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
606
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
607 func Test_characterwise_visual_mode()
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
608 new
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
609
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
610 " characterwise visual mode: replace last line
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
611 $put ='a'
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
612 let @" = 'x'
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
613 normal v$p
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
614 call assert_equal('x', getline('$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
615
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
616 " characterwise visual mode: delete middle line
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
617 call deletebufline('', 1, '$')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
618 call append('$', ['a', 'b', 'c'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
619 normal G
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
620 normal kkv$d
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
621 call assert_equal(['', 'b', 'c'], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
622
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
623 " characterwise visual mode: delete middle two lines
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
624 call deletebufline('', 1, '$')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
625 call append('$', ['a', 'b', 'c'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
626 normal Gkkvj$d
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
627 call assert_equal(['', 'c'], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
628
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
629 " characterwise visual mode: delete last line
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
630 call deletebufline('', 1, '$')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
631 call append('$', ['a', 'b', 'c'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
632 normal Gv$d
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
633 call assert_equal(['', 'a', 'b', ''], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
634
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
635 " characterwise visual mode: delete last two lines
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
636 call deletebufline('', 1, '$')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
637 call append('$', ['a', 'b', 'c'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
638 normal Gkvj$d
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
639 call assert_equal(['', 'a', ''], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
640
22476
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
641 " characterwise visual mode: use a count with the visual mode from the last
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
642 " line in the buffer
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
643 %d _
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
644 call setline(1, ['one', 'two', 'three', 'four'])
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
645 norm! vj$y
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
646 norm! G1vy
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
647 call assert_equal('four', @")
b3751f4d3b26 patch 8.2.1786: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 21923
diff changeset
648
18804
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
649 bwipe!
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
650 endfunc
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
651
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
652 func Test_visual_mode_put()
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
653 new
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
654
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
655 " v_p: replace last character with line register at middle line
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
656 call append('$', ['aaa', 'bbb', 'ccc'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
657 normal G
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
658 -2yank
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
659 normal k$vp
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
660 call assert_equal(['', 'aaa', 'bb', 'aaa', '', 'ccc'], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
661
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
662 " v_p: replace last character with line register at middle line selecting
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
663 " newline
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
664 call deletebufline('', 1, '$')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
665 call append('$', ['aaa', 'bbb', 'ccc'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
666 normal G
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
667 -2yank
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
668 normal k$v$p
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
669 call assert_equal(['', 'aaa', 'bb', 'aaa', 'ccc'], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
670
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
671 " v_p: replace last character with line register at last line
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
672 call deletebufline('', 1, '$')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
673 call append('$', ['aaa', 'bbb', 'ccc'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
674 normal G
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
675 -2yank
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
676 normal $vp
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
677 call assert_equal(['', 'aaa', 'bbb', 'cc', 'aaa', ''], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
678
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
679 " v_p: replace last character with line register at last line selecting
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
680 " newline
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
681 call deletebufline('', 1, '$')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
682 call append('$', ['aaa', 'bbb', 'ccc'])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
683 normal G
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
684 -2yank
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
685 normal $v$p
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
686 call assert_equal(['', 'aaa', 'bbb', 'cc', 'aaa', ''], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
687
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
688 bwipe!
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
689 endfunc
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
690
19738
0208534b8a84 patch 8.2.0425: code for modeless selection not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19625
diff changeset
691 func Test_gv_with_exclusive_selection()
18804
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
692 new
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
693
19738
0208534b8a84 patch 8.2.0425: code for modeless selection not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19625
diff changeset
694 " gv with exclusive selection after an operation
18804
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
695 call append('$', ['zzz ', 'äà '])
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
696 set selection=exclusive
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
697 normal Gkv3lyjv3lpgvcxxx
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
698 call assert_equal(['', 'zzz ', 'xxx '], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
699
19738
0208534b8a84 patch 8.2.0425: code for modeless selection not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19625
diff changeset
700 " gv with exclusive selection without an operation
18804
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
701 call deletebufline('', 1, '$')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
702 call append('$', 'zzz ')
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
703 set selection=exclusive
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
704 exe "normal G0v3l\<Esc>gvcxxx"
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
705 call assert_equal(['', 'xxx '], getline(1, '$'))
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
706
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
707 set selection&vim
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
708 bwipe!
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
709 endfunc
2d41b63f52de patch 8.1.2390: test94 is old style, fix 7.4.441 not tested
Bram Moolenaar <Bram@vim.org>
parents: 18771
diff changeset
710
18825
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
711 " Tests for the visual block mode commands
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
712 func Test_visual_block_mode()
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
713 new
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
714 call append(0, '')
19625
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
715 call setline(1, repeat(['abcdefghijklm'], 5))
18825
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
716 call cursor(1, 1)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
717
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
718 " Test shift-right of a block
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
719 exe "normal jllll\<C-V>jj>wll\<C-V>jlll>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
720 " Test shift-left of a block
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
721 exe "normal G$hhhh\<C-V>kk<"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
722 " Test block-insert
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
723 exe "normal Gkl\<C-V>kkkIxyz"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
724 " Test block-replace
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
725 exe "normal Gllll\<C-V>kkklllrq"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
726 " Test block-change
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
727 exe "normal G$khhh\<C-V>hhkkcmno"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
728 call assert_equal(['axyzbcdefghijklm',
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
729 \ 'axyzqqqq mno ghijklm',
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
730 \ 'axyzqqqqef mno ghijklm',
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
731 \ 'axyzqqqqefgmnoklm',
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
732 \ 'abcdqqqqijklm'], getline(1, 5))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
733
19625
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
734 " Test 'C' to change till the end of the line
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
735 call cursor(3, 4)
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
736 exe "normal! \<C-V>j3lCooo"
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
737 call assert_equal(['axyooo', 'axyooo'], getline(3, 4))
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
738
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
739 " Test 'D' to delete till the end of the line
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
740 call cursor(3, 3)
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
741 exe "normal! \<C-V>j2lD"
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
742 call assert_equal(['ax', 'ax'], getline(3, 4))
f70a3c1000bb patch 8.2.0369: various Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19613
diff changeset
743
18825
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
744 bwipe!
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
745 endfunc
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
746
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
747 " Test block-insert using cursor keys for movement
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
748 func Test_visual_block_insert_cursor_keys()
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
749 new
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
750 call append(0, ['aaaaaa', 'bbbbbb', 'cccccc', 'dddddd'])
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
751 call cursor(1, 1)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
752
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
753 exe "norm! l\<C-V>jjjlllI\<Right>\<Right> \<Esc>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
754 call assert_equal(['aaa aaa', 'bbb bbb', 'ccc ccc', 'ddd ddd'],
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
755 \ getline(1, 4))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
756
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
757 call deletebufline('', 1, '$')
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
758 call setline(1, ['xaaa', 'bbbb', 'cccc', 'dddd'])
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
759 call cursor(1, 1)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
760 exe "norm! \<C-V>jjjI<>\<Left>p\<Esc>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
761 call assert_equal(['<p>xaaa', '<p>bbbb', '<p>cccc', '<p>dddd'],
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
762 \ getline(1, 4))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
763 bwipe!
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
764 endfunc
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
765
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
766 func Test_visual_block_create()
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
767 new
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
768 call append(0, '')
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
769 " Test for Visual block was created with the last <C-v>$
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
770 call setline(1, ['A23', '4567'])
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
771 call cursor(1, 1)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
772 exe "norm! l\<C-V>j$Aab\<Esc>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
773 call assert_equal(['A23ab', '4567ab'], getline(1, 2))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
774
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
775 " Test for Visual block was created with the middle <C-v>$ (1)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
776 call deletebufline('', 1, '$')
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
777 call setline(1, ['B23', '4567'])
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
778 call cursor(1, 1)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
779 exe "norm! l\<C-V>j$hAab\<Esc>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
780 call assert_equal(['B23 ab', '4567ab'], getline(1, 2))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
781
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
782 " Test for Visual block was created with the middle <C-v>$ (2)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
783 call deletebufline('', 1, '$')
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
784 call setline(1, ['C23', '4567'])
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
785 call cursor(1, 1)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
786 exe "norm! l\<C-V>j$hhAab\<Esc>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
787 call assert_equal(['C23ab', '456ab7'], getline(1, 2))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
788 bwipe!
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
789 endfunc
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
790
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
791 " Test for Visual block insert when virtualedit=all
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
792 func Test_virtualedit_visual_block()
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
793 set ve=all
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
794 new
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
795 call append(0, ["\t\tline1", "\t\tline2", "\t\tline3"])
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
796 call cursor(1, 1)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
797 exe "norm! 07l\<C-V>jjIx\<Esc>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
798 call assert_equal([" x \tline1",
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
799 \ " x \tline2",
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
800 \ " x \tline3"], getline(1, 3))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
801
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
802 " Test for Visual block append when virtualedit=all
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
803 exe "norm! 012l\<C-v>jjAx\<Esc>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
804 call assert_equal([' x x line1',
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
805 \ ' x x line2',
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
806 \ ' x x line3'], getline(1, 3))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
807 set ve=
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
808 bwipe!
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
809 endfunc
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
810
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
811 " Test for changing case
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
812 func Test_visual_change_case()
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
813 new
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
814 " gUe must uppercase a whole word, also when ß changes to SS
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
815 exe "normal Gothe youtußeuu end\<Esc>Ypk0wgUe\r"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
816 " gUfx must uppercase until x, inclusive.
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
817 exe "normal O- youßtußexu -\<Esc>0fogUfx\r"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
818 " VU must uppercase a whole line
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
819 exe "normal YpkVU\r"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
820 " same, when it's the last line in the buffer
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
821 exe "normal YPGi111\<Esc>VUddP\r"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
822 " Uppercase two lines
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
823 exe "normal Oblah di\rdoh dut\<Esc>VkUj\r"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
824 " Uppercase part of two lines
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
825 exe "normal ddppi333\<Esc>k0i222\<Esc>fyllvjfuUk"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
826 call assert_equal(['the YOUTUSSEUU end', '- yOUSSTUSSEXu -',
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
827 \ 'THE YOUTUSSEUU END', '111THE YOUTUSSEUU END', 'BLAH DI', 'DOH DUT',
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
828 \ '222the yoUTUSSEUU END', '333THE YOUTUßeuu end'], getline(2, '$'))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
829 bwipe!
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
830 endfunc
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
831
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
832 " Test for Visual replace using Enter or NL
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
833 func Test_visual_replace_crnl()
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
834 new
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
835 exe "normal G3o123456789\e2k05l\<C-V>2jr\r"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
836 exe "normal G3o98765\e2k02l\<C-V>2jr\<C-V>\r\n"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
837 exe "normal G3o123456789\e2k05l\<C-V>2jr\n"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
838 exe "normal G3o98765\e2k02l\<C-V>2jr\<C-V>\n"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
839 call assert_equal(['12345', '789', '12345', '789', '12345', '789', "98\r65",
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
840 \ "98\r65", "98\r65", '12345', '789', '12345', '789', '12345', '789',
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
841 \ "98\n65", "98\n65", "98\n65"], getline(2, '$'))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
842 bwipe!
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
843 endfunc
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
844
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
845 func Test_ve_block_curpos()
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
846 new
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
847 " Test cursor position. When ve=block and Visual block mode and $gj
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
848 call append(0, ['12345', '789'])
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
849 call cursor(1, 3)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
850 set virtualedit=block
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
851 exe "norm! \<C-V>$gj\<Esc>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
852 call assert_equal([0, 2, 4, 0], getpos("'>"))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
853 set virtualedit=
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
854 bwipe!
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
855 endfunc
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
856
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
857 " Test for block_insert when replacing spaces in front of the a with tabs
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
858 func Test_block_insert_replace_tabs()
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
859 new
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
860 set ts=8 sts=4 sw=4
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
861 call append(0, ["#define BO_ALL\t 0x0001",
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
862 \ "#define BO_BS\t 0x0002",
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
863 \ "#define BO_CRSR\t 0x0004"])
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
864 call cursor(1, 1)
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
865 exe "norm! f0\<C-V>2jI\<tab>\<esc>"
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
866 call assert_equal([
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
867 \ "#define BO_ALL\t\t0x0001",
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
868 \ "#define BO_BS\t \t0x0002",
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
869 \ "#define BO_CRSR\t \t0x0004", ''], getline(1, '$'))
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
870 set ts& sts& sw&
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
871 bwipe!
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
872 endfunc
70f1e352d599 patch 8.1.2400: test39 is old style
Bram Moolenaar <Bram@vim.org>
parents: 18804
diff changeset
873
19425
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
874 " Test for * register in :
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
875 func Test_star_register()
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
876 call assert_fails('*bfirst', 'E16:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
877 new
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
878 call setline(1, ['foo', 'bar', 'baz', 'qux'])
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
879 exe "normal jVj\<ESC>"
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
880 *yank r
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
881 call assert_equal("bar\nbaz\n", @r)
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
882
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
883 delmarks < >
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
884 call assert_fails('*yank', 'E20:')
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
885 close!
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
886 endfunc
67fbe280a502 patch 8.2.0270: some code not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18825
diff changeset
887
19613
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
888 " Test for changing text in visual mode with 'exclusive' selection
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
889 func Test_exclusive_selection()
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
890 new
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
891 call setline(1, ['one', 'two'])
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
892 set selection=exclusive
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
893 call feedkeys("vwcabc", 'xt')
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
894 call assert_equal('abctwo', getline(1))
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
895 call setline(1, ["\tone"])
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
896 set virtualedit=all
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
897 call feedkeys('0v2lcl', 'xt')
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
898 call assert_equal('l one', getline(1))
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
899 set virtualedit&
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
900 set selection&
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
901 close!
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
902 endfunc
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
903
22502
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
904 " Test for starting linewise visual with a count.
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
905 " This test needs to be run without any previous visual mode. Otherwise the
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
906 " count will use the count from the previous visual mode.
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
907 func Test_linewise_visual_with_count()
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
908 let after =<< trim [CODE]
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
909 call setline(1, ['one', 'two', 'three', 'four'])
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
910 norm! 3Vy
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
911 call assert_equal("one\ntwo\nthree\n", @")
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
912 call writefile(v:errors, 'Xtestout')
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
913 qall!
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
914 [CODE]
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
915 if RunVim([], after, '')
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
916 call assert_equal([], readfile('Xtestout'))
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
917 call delete('Xtestout')
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
918 endif
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
919 endfunc
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
920
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
921 " Test for starting characterwise visual with a count.
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
922 " This test needs to be run without any previous visual mode. Otherwise the
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
923 " count will use the count from the previous visual mode.
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
924 func Test_characterwise_visual_with_count()
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
925 let after =<< trim [CODE]
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
926 call setline(1, ['one two', 'three'])
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
927 norm! l5vy
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
928 call assert_equal("ne tw", @")
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
929 call writefile(v:errors, 'Xtestout')
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
930 qall!
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
931 [CODE]
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
932 if RunVim([], after, '')
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
933 call assert_equal([], readfile('Xtestout'))
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
934 call delete('Xtestout')
1503ecd54f8a patch 8.2.1799: some Normal mode commands not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 22476
diff changeset
935 endif
19613
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
936 endfunc
9c15be376631 patch 8.2.0363: some Normal mode commands not tested
Bram Moolenaar <Bram@vim.org>
parents: 19425
diff changeset
937
20199
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
938 " Test for visually selecting an inner block (iB)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
939 func Test_visual_inner_block()
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
940 new
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
941 call setline(1, ['one', '{', 'two', '{', 'three', '}', 'four', '}', 'five'])
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
942 call cursor(5, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
943 " visually select all the lines in the block and then execute iB
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
944 call feedkeys("ViB\<C-C>", 'xt')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
945 call assert_equal([0, 5, 1, 0], getpos("'<"))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
946 call assert_equal([0, 5, 6, 0], getpos("'>"))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
947 " visually select two inner blocks
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
948 call feedkeys("ViBiB\<C-C>", 'xt')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
949 call assert_equal([0, 3, 1, 0], getpos("'<"))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
950 call assert_equal([0, 7, 5, 0], getpos("'>"))
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
951 " try to select non-existing inner block
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
952 call cursor(5, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
953 call assert_beeps('normal ViBiBiB')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
954 " try to select a unclosed inner block
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
955 8,9d
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
956 call cursor(5, 1)
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
957 call assert_beeps('normal ViBiB')
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
958 close!
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
959 endfunc
a4bd28e2cf1d patch 8.2.0655: search code not sufficiently tested
Bram Moolenaar <Bram@vim.org>
parents: 19852
diff changeset
960
21923
2626306efe44 patch 8.2.1511: putting a string in Visual block mode ignores multi-byte
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
961 func Test_visual_put_in_block()
2626306efe44 patch 8.2.1511: putting a string in Visual block mode ignores multi-byte
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
962 new
2626306efe44 patch 8.2.1511: putting a string in Visual block mode ignores multi-byte
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
963 call setline(1, ['xxxx', 'y∞yy', 'zzzz'])
2626306efe44 patch 8.2.1511: putting a string in Visual block mode ignores multi-byte
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
964 normal 1G2yl
2626306efe44 patch 8.2.1511: putting a string in Visual block mode ignores multi-byte
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
965 exe "normal 1G2l\<C-V>jjlp"
2626306efe44 patch 8.2.1511: putting a string in Visual block mode ignores multi-byte
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
966 call assert_equal(['xxxx', 'y∞xx', 'zzxx'], getline(1, 3))
2626306efe44 patch 8.2.1511: putting a string in Visual block mode ignores multi-byte
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
967 bwipe!
2626306efe44 patch 8.2.1511: putting a string in Visual block mode ignores multi-byte
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
968 endfunc
2626306efe44 patch 8.2.1511: putting a string in Visual block mode ignores multi-byte
Bram Moolenaar <Bram@vim.org>
parents: 20941
diff changeset
969
18771
50fde4e20790 patch 8.1.2375: no suffucient testing for registers
Bram Moolenaar <Bram@vim.org>
parents: 16419
diff changeset
970 " vim: shiftwidth=2 sts=2 expandtab