blob: e6301a5c05662f7a4a9961ccfab3c85f23b20912 [file] [log] [blame]
Bram Moolenaar1671f442020-03-10 07:48:13 +01001" Test for character search commands - t, T, f, F, ; and ,
Bram Moolenaarcd055da2016-09-02 19:50:48 +02002
Bram Moolenaar1e115362019-01-09 23:01:02 +01003func Test_charsearch()
Bram Moolenaarcd055da2016-09-02 19:50:48 +02004 enew!
5 call append(0, ['Xabcdefghijkemnopqretuvwxyz',
Bram Moolenaar53f16732016-09-07 20:46:39 +02006 \ 'Yabcdefghijkemnopqretuvwxyz',
7 \ 'Zabcdefghijkemnokqretkvwxyz'])
Bram Moolenaarcd055da2016-09-02 19:50:48 +02008 " check that "fe" and ";" work
9 1
10 normal! ylfep;;p,,p
11 call assert_equal('XabcdeXfghijkeXmnopqreXtuvwxyz', getline(1))
12 " check that save/restore works
13 2
14 normal! ylfep
15 let csave = getcharsearch()
16 normal! fip
17 call setcharsearch(csave)
18 normal! ;p;p
19 call assert_equal('YabcdeYfghiYjkeYmnopqreYtuvwxyz', getline(2))
20
21 " check that setcharsearch() changes the settings.
22 3
23 normal! ylfep
Bram Moolenaar196b4662019-09-06 21:34:30 +020024 eval {'char': 'k'}->setcharsearch()
Bram Moolenaarcd055da2016-09-02 19:50:48 +020025 normal! ;p
26 call setcharsearch({'forward': 0})
27 normal! $;p
28 call setcharsearch({'until': 1})
29 set cpo-=;
30 normal! ;;p
31 call assert_equal('ZabcdeZfghijkZZemnokqretkZvwxyz', getline(3))
Bram Moolenaar0e05de42020-03-25 22:23:46 +010032
33 call assert_fails("call setcharsearch([])", 'E715:')
Bram Moolenaarcd055da2016-09-02 19:50:48 +020034 enew!
Bram Moolenaar1e115362019-01-09 23:01:02 +010035endfunc
Bram Moolenaarcd055da2016-09-02 19:50:48 +020036
37" Test for t,f,F,T movement commands and 'cpo-;' setting
Bram Moolenaar1e115362019-01-09 23:01:02 +010038func Test_search_cmds()
Bram Moolenaarcd055da2016-09-02 19:50:48 +020039 enew!
40 call append(0, ["aaa two three four", " zzz", "yyy ",
41 \ "bbb yee yoo four", "ccc two three four",
42 \ "ddd yee yoo four"])
43 set cpo-=;
44 1
45 normal! 0tt;D
46 2
47 normal! 0fz;D
48 3
49 normal! $Fy;D
50 4
51 normal! $Ty;D
52 set cpo+=;
53 5
54 normal! 0tt;;D
55 6
56 normal! $Ty;;D
57
58 call assert_equal('aaa two', getline(1))
59 call assert_equal(' z', getline(2))
60 call assert_equal('y', getline(3))
61 call assert_equal('bbb y', getline(4))
62 call assert_equal('ccc', getline(5))
63 call assert_equal('ddd yee y', getline(6))
64 enew!
Bram Moolenaar1e115362019-01-09 23:01:02 +010065endfunc
Bram Moolenaar1671f442020-03-10 07:48:13 +010066
67" Test for character search in virtual edit mode with <Tab>
68func Test_csearch_virtualedit()
69 new
70 set virtualedit=all
71 call setline(1, "a\tb")
72 normal! tb
73 call assert_equal([0, 1, 2, 6], getpos('.'))
74 set virtualedit&
75 close!
76endfunc
77
78" vim: shiftwidth=2 sts=2 expandtab