1" Tests for 'virtualedit'. 2 3func Test_yank_move_change() 4 new 5 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 32 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 44 45func 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 call setline(1, range(20)) 52 exe "normal! gg2jv10lr\<c-k>hh" 53 call assert_equal(["1", "───────────", "3"], getline(2,4)) 54 55 bwipe! 56 set virtualedit= 57endfunc 58 59func Test_edit_CTRL_G() 60 new 61 set virtualedit=insert 62 call setline(1, ['123', '1', '12']) 63 exe "normal! ggA\<c-g>jx\<c-g>jx" 64 call assert_equal(['123', '1 x', '12 x'], getline(1,'$')) 65 66 set virtualedit=all 67 %d_ 68 call setline(1, ['1', '12']) 69 exe "normal! ggllix\<c-g>jx" 70 call assert_equal(['1 x', '12x'], getline(1,'$')) 71 72 73 bwipe! 74 set virtualedit= 75endfunc 76