blob: abe79f6a4ad8b24be423546e4fd5cd33deaf2ee9 [file] [log] [blame]
Bram Moolenaar9aa15692017-08-19 15:05:32 +02001" Tests for 'virtualedit'.
2
3func Test_yank_move_change()
Bram Moolenaard41babe2017-08-30 17:01:35 +02004 new
Bram Moolenaar9aa15692017-08-19 15:05:32 +02005 call setline(1, [
6 \ "func foo() error {",
7 \ "\tif n, err := bar();",
8 \ "\terr != nil {",
9 \ "\t\treturn err",
10 \ "\t}",
11 \ "\tn = n * n",
12 \ ])
13 set virtualedit=all
14 set ts=4
15 function! MoveSelectionDown(count) abort
16 normal! m`
17 silent! exe "'<,'>move'>+".a:count
18 norm! ``
19 endfunction
20
21 xmap ]e :<C-U>call MoveSelectionDown(v:count1)<CR>
22 2
23 normal 2gg
24 normal J
25 normal jVj
26 normal ]e
27 normal ce
28 bwipe!
29 set virtualedit=
30 set ts=8
31endfunc
Bram Moolenaard41babe2017-08-30 17:01:35 +020032
33func Test_paste_end_of_line()
34 new
35 set virtualedit=all
36 call setline(1, ['456', '123'])
37 normal! gg0"ay$
38 exe "normal! 2G$lllA\<C-O>:normal! \"agP\r"
39 call assert_equal('123456', getline(2))
40
41 bwipe!
42 set virtualedit=
43endfunc
Bram Moolenaardb0eede2018-04-25 22:38:17 +020044
Bram Moolenaar630afe82018-06-28 19:26:28 +020045func Test_replace_end_of_line()
46 new
47 set virtualedit=all
48 call setline(1, range(20))
49 exe "normal! gg2jv10lr-"
50 call assert_equal(["1", "-----------", "3"], getline(2,4))
51 if has('multi_byte')
52 call setline(1, range(20))
53 exe "normal! gg2jv10lr\<c-k>hh"
54 call assert_equal(["1", "───────────", "3"], getline(2,4))
55 endif
56
57 bwipe!
58 set virtualedit=
59endfunc
60
Bram Moolenaardb0eede2018-04-25 22:38:17 +020061func Test_edit_CTRL_G()
62 new
63 set virtualedit=insert
64 call setline(1, ['123', '1', '12'])
65 exe "normal! ggA\<c-g>jx\<c-g>jx"
66 call assert_equal(['123', '1 x', '12 x'], getline(1,'$'))
67
68 set virtualedit=all
69 %d_
70 call setline(1, ['1', '12'])
71 exe "normal! ggllix\<c-g>jx"
72 call assert_equal(['1 x', '12x'], getline(1,'$'))
73
74
75 bwipe!
76 set virtualedit=
77endfunc