annotate src/testdir/test_mapping.vim @ 19370:02111977dd05 v8.2.0243

patch 8.2.0243: insufficient code coverage for ex_docmd.c functions Commit: https://github.com/vim/vim/commit/9f6277bdde97b7767ded43a0b5a2023eb601b3b7 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 11 22:04:02 2020 +0100 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions Problem: Insufficient code coverage for ex_docmd.c functions. Solution: Add more tests. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/5618)
author Bram Moolenaar <Bram@vim.org>
date Tue, 11 Feb 2020 22:15:04 +0100
parents f7081bd2680e
children 2f4be7ca1b1b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9867
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for mappings and abbreviations
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
15659
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
3 source shared.vim
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17249
diff changeset
4 source check.vim
18689
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
5 source screendump.vim
15659
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
6
9867
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 func Test_abbreviation()
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 " abbreviation with 0x80 should work
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 inoreab чкпр vim
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 call feedkeys("Goчкпр \<Esc>", "xt")
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 call assert_equal('vim ', getline('$'))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12 iunab чкпр
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 set nomodified
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 endfunc
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15
16389
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
16 func Test_abclear()
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
17 abbrev foo foobar
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
18 iabbrev fooi foobari
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
19 cabbrev fooc foobarc
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
20 call assert_equal("\n\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
21 \ .. "c fooc foobarc\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
22 \ .. "i fooi foobari\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
23 \ .. "! foo foobar", execute('abbrev'))
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
24
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
25 iabclear
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
26 call assert_equal("\n\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
27 \ .. "c fooc foobarc\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
28 \ .. "c foo foobar", execute('abbrev'))
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
29 abbrev foo foobar
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
30 iabbrev fooi foobari
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
31
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
32 cabclear
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
33 call assert_equal("\n\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
34 \ .. "i fooi foobari\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
35 \ .. "i foo foobar", execute('abbrev'))
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
36 abbrev foo foobar
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
37 cabbrev fooc foobarc
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
38
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
39 abclear
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
40 call assert_equal("\n\nNo abbreviation found", execute('abbrev'))
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
41 endfunc
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
42
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
43 func Test_abclear_buffer()
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
44 abbrev foo foobar
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
45 new X1
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
46 abbrev <buffer> foo1 foobar1
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
47 new X2
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
48 abbrev <buffer> foo2 foobar2
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
49
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
50 call assert_equal("\n\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
51 \ .. "! foo2 @foobar2\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
52 \ .. "! foo foobar", execute('abbrev'))
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
53
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
54 abclear <buffer>
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
55 call assert_equal("\n\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
56 \ .. "! foo foobar", execute('abbrev'))
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
57
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
58 b X1
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
59 call assert_equal("\n\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
60 \ .. "! foo1 @foobar1\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
61 \ .. "! foo foobar", execute('abbrev'))
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
62 abclear <buffer>
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
63 call assert_equal("\n\n"
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
64 \ .. "! foo foobar", execute('abbrev'))
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
65
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
66 abclear
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
67 call assert_equal("\n\nNo abbreviation found", execute('abbrev'))
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
68
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
69 %bwipe
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
70 endfunc
fb7cf38a1c7a patch 8.1.1199: no test for :abclear
Bram Moolenaar <Bram@vim.org>
parents: 16101
diff changeset
71
9867
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
72 func Test_map_ctrl_c_insert()
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
73 " mapping of ctrl-c in Insert mode
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
74 set cpo-=< cpo-=k
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
75 inoremap <c-c> <ctrl-c>
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
76 cnoremap <c-c> dummy
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
77 cunmap <c-c>
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
78 call feedkeys("GoTEST2: CTRL-C |\<C-C>A|\<Esc>", "xt")
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
79 call assert_equal('TEST2: CTRL-C |<ctrl-c>A|', getline('$'))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
80 unmap! <c-c>
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
81 set nomodified
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
82 endfunc
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
83
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
84 func Test_map_ctrl_c_visual()
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
85 " mapping of ctrl-c in Visual mode
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
86 vnoremap <c-c> :<C-u>$put ='vmap works'
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
87 call feedkeys("GV\<C-C>\<CR>", "xt")
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
88 call assert_equal('vmap works', getline('$'))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
89 vunmap <c-c>
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
90 set nomodified
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
91 endfunc
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
92
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
93 func Test_map_langmap()
9925
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
94 if !has('langmap')
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
95 return
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
96 endif
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
97
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
98 " check langmap applies in normal mode
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
99 set langmap=+- nolangremap
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
100 new
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
101 call setline(1, ['a', 'b', 'c'])
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
102 2
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
103 call assert_equal('b', getline('.'))
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
104 call feedkeys("+", "xt")
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
105 call assert_equal('a', getline('.'))
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
106
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
107 " check no remapping
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
108 map x +
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
109 2
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
110 call feedkeys("x", "xt")
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
111 call assert_equal('c', getline('.'))
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
112
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
113 " check with remapping
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
114 set langremap
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
115 2
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
116 call feedkeys("x", "xt")
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
117 call assert_equal('a', getline('.'))
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
118
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
119 unmap x
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
120 bwipe!
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
121
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
122 " 'langnoremap' follows 'langremap' and vise versa
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
123 set langremap
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
124 set langnoremap
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
125 call assert_equal(0, &langremap)
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
126 set langremap
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
127 call assert_equal(0, &langnoremap)
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
128 set nolangremap
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
129 call assert_equal(1, &langnoremap)
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
130
10070
09c7df6f8dd3 commit https://github.com/vim/vim/commit/da9ce2cde11ddd0e16cdfbab6d4ac4e8110218e1
Christian Brabandt <cb@256bit.org>
parents: 9925
diff changeset
131 " check default values
09c7df6f8dd3 commit https://github.com/vim/vim/commit/da9ce2cde11ddd0e16cdfbab6d4ac4e8110218e1
Christian Brabandt <cb@256bit.org>
parents: 9925
diff changeset
132 set langnoremap&
09c7df6f8dd3 commit https://github.com/vim/vim/commit/da9ce2cde11ddd0e16cdfbab6d4ac4e8110218e1
Christian Brabandt <cb@256bit.org>
parents: 9925
diff changeset
133 call assert_equal(0, &langnoremap)
09c7df6f8dd3 commit https://github.com/vim/vim/commit/da9ce2cde11ddd0e16cdfbab6d4ac4e8110218e1
Christian Brabandt <cb@256bit.org>
parents: 9925
diff changeset
134 call assert_equal(1, &langremap)
09c7df6f8dd3 commit https://github.com/vim/vim/commit/da9ce2cde11ddd0e16cdfbab6d4ac4e8110218e1
Christian Brabandt <cb@256bit.org>
parents: 9925
diff changeset
135 set langremap&
09c7df6f8dd3 commit https://github.com/vim/vim/commit/da9ce2cde11ddd0e16cdfbab6d4ac4e8110218e1
Christian Brabandt <cb@256bit.org>
parents: 9925
diff changeset
136 call assert_equal(0, &langnoremap)
09c7df6f8dd3 commit https://github.com/vim/vim/commit/da9ce2cde11ddd0e16cdfbab6d4ac4e8110218e1
Christian Brabandt <cb@256bit.org>
parents: 9925
diff changeset
137 call assert_equal(1, &langremap)
09c7df6f8dd3 commit https://github.com/vim/vim/commit/da9ce2cde11ddd0e16cdfbab6d4ac4e8110218e1
Christian Brabandt <cb@256bit.org>
parents: 9925
diff changeset
138
9925
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
139 " langmap should not apply in insert mode, 'langremap' doesn't matter
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
140 set langmap=+{ nolangremap
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
141 call feedkeys("Go+\<Esc>", "xt")
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
142 call assert_equal('+', getline('$'))
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
143 set langmap=+{ langremap
9867
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
144 call feedkeys("Go+\<Esc>", "xt")
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
145 call assert_equal('+', getline('$'))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
146
9925
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
147 " langmap used for register name in insert mode.
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
148 call setreg('a', 'aaaa')
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
149 call setreg('b', 'bbbb')
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
150 call setreg('c', 'cccc')
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
151 set langmap=ab langremap
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
152 call feedkeys("Go\<C-R>a\<Esc>", "xt")
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
153 call assert_equal('bbbb', getline('$'))
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
154 call feedkeys("Go\<C-R>\<C-R>a\<Esc>", "xt")
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
155 call assert_equal('bbbb', getline('$'))
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
156 " mapping does not apply
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
157 imap c a
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
158 call feedkeys("Go\<C-R>c\<Esc>", "xt")
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
159 call assert_equal('cccc', getline('$'))
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
160 imap a c
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
161 call feedkeys("Go\<C-R>a\<Esc>", "xt")
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
162 call assert_equal('bbbb', getline('$'))
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
163
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
164 " langmap should not apply in Command-line mode
3fba3e8326a7 commit https://github.com/vim/vim/commit/920694c1b60fac8017b8909efcc24f189804a9bb
Christian Brabandt <cb@256bit.org>
parents: 9869
diff changeset
165 set langmap=+{ nolangremap
9867
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
166 call feedkeys(":call append(line('$'), '+')\<CR>", "xt")
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
167 call assert_equal('+', getline('$'))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
168
10787
09926123316b patch 8.0.0283: mode() does not indicate Insert mode completion
Christian Brabandt <cb@256bit.org>
parents: 10070
diff changeset
169 iunmap a
09926123316b patch 8.0.0283: mode() does not indicate Insert mode completion
Christian Brabandt <cb@256bit.org>
parents: 10070
diff changeset
170 iunmap c
9867
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
171 set nomodified
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
172 endfunc
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
173
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
174 func Test_map_feedkeys()
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
175 " issue #212 (feedkeys insert mapping at current position)
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
176 nnoremap . :call feedkeys(".", "in")<cr>
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
177 call setline('$', ['a b c d', 'a b c d'])
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
178 $-1
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
179 call feedkeys("0qqdw.ifoo\<Esc>qj0@q\<Esc>", "xt")
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
180 call assert_equal(['fooc d', 'fooc d'], getline(line('$') - 1, line('$')))
10787
09926123316b patch 8.0.0283: mode() does not indicate Insert mode completion
Christian Brabandt <cb@256bit.org>
parents: 10070
diff changeset
181 nunmap .
9867
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
182 set nomodified
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
183 endfunc
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
184
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
185 func Test_map_cursor()
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
186 " <c-g>U<cursor> works only within a single line
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
187 imapclear
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
188 imap ( ()<c-g>U<left>
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
189 call feedkeys("G2o\<Esc>ki\<CR>Test1: text with a (here some more text\<Esc>k.", "xt")
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
190 call assert_equal('Test1: text with a (here some more text)', getline(line('$') - 2))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
191 call assert_equal('Test1: text with a (here some more text)', getline(line('$') - 1))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
192
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
193 " test undo
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
194 call feedkeys("G2o\<Esc>ki\<CR>Test2: text wit a (here some more text [und undo]\<C-G>u\<Esc>k.u", "xt")
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
195 call assert_equal('', getline(line('$') - 2))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
196 call assert_equal('Test2: text wit a (here some more text [und undo])', getline(line('$') - 1))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
197 set nomodified
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
198 imapclear
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
199 endfunc
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
200
16101
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
201 func Test_map_cursor_ctrl_gU()
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
202 " <c-g>U<cursor> works only within a single line
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
203 nnoremap c<* *Ncgn<C-r>"<C-G>U<S-Left>
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
204 call setline(1, ['foo', 'foobar', '', 'foo'])
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
205 call cursor(1,2)
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
206 call feedkeys("c<*PREFIX\<esc>.", 'xt')
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
207 call assert_equal(['PREFIXfoo', 'foobar', '', 'PREFIXfoo'], getline(1,'$'))
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
208 " break undo manually
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
209 set ul=1000
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
210 exe ":norm! uu"
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
211 call assert_equal(['foo', 'foobar', '', 'foo'], getline(1,'$'))
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
212
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
213 " Test that it does not work if the cursor moves to the previous line
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
214 " 2 times <S-Left> move to the previous line
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
215 nnoremap c<* *Ncgn<C-r>"<C-G>U<S-Left><C-G>U<S-Left>
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
216 call setline(1, ['', ' foo', 'foobar', '', 'foo'])
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
217 call cursor(2,3)
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
218 call feedkeys("c<*PREFIX\<esc>.", 'xt')
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
219 call assert_equal(['PREFIXPREFIX', ' foo', 'foobar', '', 'foo'], getline(1,'$'))
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
220 nmapclear
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
221 endfunc
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
222
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
223
9867
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
224 " This isn't actually testing a mapping, but similar use of CTRL-G U as above.
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
225 func Test_break_undo()
16101
5c5d211bd5a8 patch 8.1.1055: CTRL-G U in Insert mode doesn't work for shift-Left
Bram Moolenaar <Bram@vim.org>
parents: 15687
diff changeset
226 set whichwrap=<,>,[,]
9867
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
227 call feedkeys("G4o2k", "xt")
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
228 exe ":norm! iTest3: text with a (parenthesis here\<C-G>U\<Right>new line here\<esc>\<up>\<up>."
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
229 call assert_equal('new line here', getline(line('$') - 3))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
230 call assert_equal('Test3: text with a (parenthesis here', getline(line('$') - 2))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
231 call assert_equal('new line here', getline(line('$') - 1))
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
232 set nomodified
86f73f026a9a commit https://github.com/vim/vim/commit/2d1a248762f069e470acde389ff4686a45d2f817
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
233 endfunc
9869
989d44d35a66 commit https://github.com/vim/vim/commit/35a4cfa200917dd171b1fff3cd5b6cee9add673d
Christian Brabandt <cb@256bit.org>
parents: 9867
diff changeset
234
989d44d35a66 commit https://github.com/vim/vim/commit/35a4cfa200917dd171b1fff3cd5b6cee9add673d
Christian Brabandt <cb@256bit.org>
parents: 9867
diff changeset
235 func Test_map_meta_quotes()
989d44d35a66 commit https://github.com/vim/vim/commit/35a4cfa200917dd171b1fff3cd5b6cee9add673d
Christian Brabandt <cb@256bit.org>
parents: 9867
diff changeset
236 imap <M-"> foo
989d44d35a66 commit https://github.com/vim/vim/commit/35a4cfa200917dd171b1fff3cd5b6cee9add673d
Christian Brabandt <cb@256bit.org>
parents: 9867
diff changeset
237 call feedkeys("Go-\<M-\">-\<Esc>", "xt")
989d44d35a66 commit https://github.com/vim/vim/commit/35a4cfa200917dd171b1fff3cd5b6cee9add673d
Christian Brabandt <cb@256bit.org>
parents: 9867
diff changeset
238 call assert_equal("-foo-", getline('$'))
989d44d35a66 commit https://github.com/vim/vim/commit/35a4cfa200917dd171b1fff3cd5b6cee9add673d
Christian Brabandt <cb@256bit.org>
parents: 9867
diff changeset
239 set nomodified
989d44d35a66 commit https://github.com/vim/vim/commit/35a4cfa200917dd171b1fff3cd5b6cee9add673d
Christian Brabandt <cb@256bit.org>
parents: 9867
diff changeset
240 iunmap <M-">
989d44d35a66 commit https://github.com/vim/vim/commit/35a4cfa200917dd171b1fff3cd5b6cee9add673d
Christian Brabandt <cb@256bit.org>
parents: 9867
diff changeset
241 endfunc
11295
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
242
17720
844f470532b6 patch 8.1.1857: cannot use modifier with multi-byte character
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
243 func Test_map_meta_multibyte()
844f470532b6 patch 8.1.1857: cannot use modifier with multi-byte character
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
244 imap <M-á> foo
17722
bf807c68ac80 patch 8.1.1858: test for multi-byte mapping fails on some systems
Bram Moolenaar <Bram@vim.org>
parents: 17720
diff changeset
245 call assert_match('i <M-á>\s*foo', execute('imap'))
17720
844f470532b6 patch 8.1.1857: cannot use modifier with multi-byte character
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
246 iunmap <M-á>
844f470532b6 patch 8.1.1857: cannot use modifier with multi-byte character
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
247 endfunc
844f470532b6 patch 8.1.1857: cannot use modifier with multi-byte character
Bram Moolenaar <Bram@vim.org>
parents: 17657
diff changeset
248
11295
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
249 func Test_abbr_after_line_join()
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
250 new
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
251 abbr foo bar
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
252 set backspace=indent,eol,start
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
253 exe "normal o\<BS>foo "
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
254 call assert_equal("bar ", getline(1))
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
255 bwipe!
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
256 unabbr foo
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
257 set backspace&
d772bf077b3f patch 8.0.0533: abbreviation doesn't work after backspacing newline
Christian Brabandt <cb@256bit.org>
parents: 10787
diff changeset
258 endfunc
11403
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
259
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
260 func Test_map_timeout()
15659
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
261 if !has('timers')
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
262 return
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
263 endif
11403
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
264 nnoremap aaaa :let got_aaaa = 1<CR>
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
265 nnoremap bb :let got_bb = 1<CR>
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
266 nmap b aaa
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
267 new
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
268 func ExitInsert(timer)
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
269 let g:line = getline(1)
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
270 call feedkeys("\<Esc>", "t")
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
271 endfunc
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
272 set timeout timeoutlen=200
15659
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
273 let timer = timer_start(300, 'ExitInsert')
11403
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
274 " After the 'b' Vim waits for another character to see if it matches 'bb'.
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
275 " When it times out it is expanded to "aaa", but there is no wait for
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
276 " "aaaa". Can't check that reliably though.
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
277 call feedkeys("b", "xt!")
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
278 call assert_equal("aa", g:line)
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
279 call assert_false(exists('got_aaa'))
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
280 call assert_false(exists('got_bb'))
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
281
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
282 bwipe!
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
283 nunmap aaaa
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
284 nunmap bb
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
285 nunmap b
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
286 set timeoutlen&
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
287 delfunc ExitInsert
15659
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
288 call timer_stop(timer)
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
289 endfunc
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
290
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
291 func Test_map_timeout_with_timer_interrupt()
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
292 if !has('job') || !has('timers')
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
293 return
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
294 endif
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
295
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
296 " Confirm the timer invoked in exit_cb of the job doesn't disturb mapped key
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
297 " sequence.
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
298 new
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
299 let g:val = 0
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
300 nnoremap \12 :let g:val = 1<CR>
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
301 nnoremap \123 :let g:val = 2<CR>
17726
586558396b7e patch 8.1.1860: map timeout test is flaky
Bram Moolenaar <Bram@vim.org>
parents: 17722
diff changeset
302 set timeout timeoutlen=200
15659
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
303
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
304 func ExitCb(job, status)
15687
cb501b3c9fb5 patch 8.1.0851: feedkeys() with "L" does not work properly
Bram Moolenaar <Bram@vim.org>
parents: 15659
diff changeset
305 let g:timer = timer_start(1, {-> feedkeys("3\<Esc>", 't')})
15659
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
306 endfunc
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
307
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
308 call job_start([&shell, &shellcmdflag, 'echo'], {'exit_cb': 'ExitCb'})
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
309 call feedkeys('\12', 'xt!')
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
310 call assert_equal(2, g:val)
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
311
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
312 bwipe!
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
313 nunmap \12
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
314 nunmap \123
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
315 set timeoutlen&
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
316 call WaitFor({-> exists('g:timer')})
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
317 call timer_stop(g:timer)
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
318 unlet g:timer
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
319 unlet g:val
8513d9864f7e patch 8.1.0837: timer interrupting cursorhold and mapping not tested
Bram Moolenaar <Bram@vim.org>
parents: 15607
diff changeset
320 delfunc ExitCb
11403
74a40efb39ea patch 8.0.0586: no test for mapping timing out
Christian Brabandt <cb@256bit.org>
parents: 11295
diff changeset
321 endfunc
13788
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
322
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
323 func Test_abbreviation_CR()
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
324 new
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
325 func Eatchar(pat)
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
326 let c = nr2char(getchar(0))
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
327 return (c =~ a:pat) ? '' : c
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
328 endfunc
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
329 iabbrev <buffer><silent> ~~7 <c-r>=repeat('~', 7)<CR><c-r>=Eatchar('\s')<cr>
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
330 call feedkeys("GA~~7 \<esc>", 'xt')
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
331 call assert_equal('~~~~~~~', getline('$'))
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
332 %d
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
333 call feedkeys("GA~~7\<cr>\<esc>", 'xt')
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
334 call assert_equal(['~~~~~~~', ''], getline(1,'$'))
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
335 delfunc Eatchar
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
336 bw!
a27d380b257f patch 8.0.1766: expanding abbreviation doesn't work
Christian Brabandt <cb@256bit.org>
parents: 11403
diff changeset
337 endfunc
13933
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
338
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
339 func Test_cabbr_visual_mode()
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
340 cabbr s su
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
341 call feedkeys(":s \<c-B>\"\<CR>", 'itx')
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
342 call assert_equal('"su ', getreg(':'))
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
343 call feedkeys(":'<,'>s \<c-B>\"\<CR>", 'itx')
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
344 let expected = '"'. "'<,'>su "
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
345 call assert_equal(expected, getreg(':'))
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
346 call feedkeys(": '<,'>s \<c-B>\"\<CR>", 'itx')
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
347 let expected = '" '. "'<,'>su "
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
348 call assert_equal(expected, getreg(':'))
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
349 call feedkeys(":'a,'bs \<c-B>\"\<CR>", 'itx')
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
350 let expected = '"'. "'a,'bsu "
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
351 call assert_equal(expected, getreg(':'))
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
352 cunabbr s
bea665293ea0 patch 8.0.1837: one character cmdline abbreviation not triggered after '<,'>
Christian Brabandt <cb@256bit.org>
parents: 13788
diff changeset
353 endfunc
15279
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
354
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
355 func Test_motionforce_omap()
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
356 func GetCommand()
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
357 let g:m=mode(1)
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
358 let [g:lnum1, g:col1] = searchpos('-', 'Wb')
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
359 if g:lnum1 == 0
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
360 return "\<Esc>"
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
361 endif
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
362 let [g:lnum2, g:col2] = searchpos('-', 'W')
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
363 if g:lnum2 == 0
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
364 return "\<Esc>"
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
365 endif
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
366 return ":call Select()\<CR>"
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
367 endfunc
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
368 func Select()
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
369 call cursor([g:lnum1, g:col1])
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
370 exe "normal! 1 ". (strlen(g:m) == 2 ? 'v' : g:m[2])
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
371 call cursor([g:lnum2, g:col2])
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
372 execute "normal! \<BS>"
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
373 endfunc
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
374 new
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
375 onoremap <buffer><expr> i- GetCommand()
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
376 " 1) default omap mapping
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
377 %d_
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
378 call setline(1, ['aaa - bbb', 'x', 'ddd - eee'])
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
379 call cursor(2, 1)
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
380 norm di-
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
381 call assert_equal('no', g:m)
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
382 call assert_equal(['aaa -- eee'], getline(1, '$'))
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
383 " 2) forced characterwise operation
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
384 %d_
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
385 call setline(1, ['aaa - bbb', 'x', 'ddd - eee'])
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
386 call cursor(2, 1)
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
387 norm dvi-
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
388 call assert_equal('nov', g:m)
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
389 call assert_equal(['aaa -- eee'], getline(1, '$'))
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
390 " 3) forced linewise operation
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
391 %d_
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
392 call setline(1, ['aaa - bbb', 'x', 'ddd - eee'])
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
393 call cursor(2, 1)
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
394 norm dVi-
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
395 call assert_equal('noV', g:m)
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
396 call assert_equal([''], getline(1, '$'))
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
397 " 4) forced blockwise operation
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
398 %d_
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
399 call setline(1, ['aaa - bbb', 'x', 'ddd - eee'])
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
400 call cursor(2, 1)
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
401 exe "norm d\<C-V>i-"
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
402 call assert_equal("no\<C-V>", g:m)
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
403 call assert_equal(['aaabbb', 'x', 'dddeee'], getline(1, '$'))
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
404 bwipe!
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
405 delfunc Select
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
406 delfunc GetCommand
54457fc4af0b patch 8.1.0648: custom operators can't act upon a forced motion
Bram Moolenaar <Bram@vim.org>
parents: 13933
diff changeset
407 endfunc
17184
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
408
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
409 func Test_error_in_map_expr()
17657
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17249
diff changeset
410 " Unlike CheckRunVimInTerminal this does work in a win32 console
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17249
diff changeset
411 CheckFeature terminal
0da9bc55c31a patch 8.1.1826: tests use hand coded feature and option checks
Bram Moolenaar <Bram@vim.org>
parents: 17249
diff changeset
412 if has('win32') && has('gui_running')
17184
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
413 throw 'Skipped: cannot run Vim in a terminal window'
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
414 endif
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
415
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
416 let lines =<< trim [CODE]
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
417 func Func()
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
418 " fail to create list
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
419 let x = [
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
420 endfunc
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
421 nmap <expr> ! Func()
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
422 set updatetime=50
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
423 [CODE]
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
424 call writefile(lines, 'Xtest.vim')
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
425
17249
3e2e998ce0db patch 8.1.1624: when testing in the GUI may try to run gvim in a terminal
Bram Moolenaar <Bram@vim.org>
parents: 17239
diff changeset
426 let buf = term_start(GetVimCommandCleanTerm() .. ' -S Xtest.vim', {'term_rows': 8})
17184
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
427 let job = term_getjob(buf)
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
428 call WaitForAssert({-> assert_notequal('', term_getline(buf, 8))})
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
429
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
430 " GC must not run during map-expr processing, which can make Vim crash.
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
431 call term_sendkeys(buf, '!')
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
432 call term_wait(buf, 100)
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
433 call term_sendkeys(buf, "\<CR>")
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
434 call term_wait(buf, 100)
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
435 call assert_equal('run', job_status(job))
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
436
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
437 call term_sendkeys(buf, ":qall!\<CR>")
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
438 call WaitFor({-> job_status(job) ==# 'dead'})
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
439 if has('unix')
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
440 call assert_equal('', job_info(job).termsig)
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
441 endif
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
442
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
443 call delete('Xtest.vim')
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
444 exe buf .. 'bwipe!'
a5c3d374e1d3 patch 8.1.1591: on error garbage collection may free memory in use
Bram Moolenaar <Bram@vim.org>
parents: 16389
diff changeset
445 endfunc
18329
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
446
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
447 func Test_list_mappings()
18346
5b12fd0c39c3 patch 8.1.2167: mapping test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 18341
diff changeset
448 " Remove default mappings
5b12fd0c39c3 patch 8.1.2167: mapping test fails on MS-Windows
Bram Moolenaar <Bram@vim.org>
parents: 18341
diff changeset
449 imapclear
18341
a9d518b1271b patch 8.1.2165: mapping test fails on Mac
Bram Moolenaar <Bram@vim.org>
parents: 18329
diff changeset
450
18329
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
451 inoremap <C-M> CtrlM
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
452 inoremap <A-S> AltS
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
453 inoremap <S-/> ShiftSlash
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
454 call assert_equal([
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
455 \ 'i <S-/> * ShiftSlash',
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
456 \ 'i <M-S> * AltS',
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
457 \ 'i <C-M> * CtrlM',
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
458 \], execute('imap')->trim()->split("\n"))
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
459 iunmap <C-M>
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
460 iunmap <A-S>
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
461 call assert_equal(['i <S-/> * ShiftSlash'], execute('imap')->trim()->split("\n"))
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
462 iunmap <S-/>
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
463 call assert_equal(['No mapping found'], execute('imap')->trim()->split("\n"))
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
464
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
465 " List global, buffer local and script local mappings
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
466 nmap ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
467 nmap <buffer> ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
468 nmap <script> ,fs /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
469 call assert_equal(['n ,f @/^\k\+ (<CR>',
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
470 \ 'n ,fs & /^\k\+ (<CR>',
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
471 \ 'n ,f /^\k\+ (<CR>'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
472 \ execute('nmap ,f')->trim()->split("\n"))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
473
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
474 " List <Nop> mapping
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
475 nmap ,n <Nop>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
476 call assert_equal(['n ,n <Nop>'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
477 \ execute('nmap ,n')->trim()->split("\n"))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
478
19178
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
479 " verbose map
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
480 call assert_match("\tLast set from .*/test_mapping.vim line \\d\\+$",
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
481 \ execute('verbose map ,n')->trim()->split("\n")[1])
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
482
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
483 " map to CTRL-V
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
484 exe "nmap ,k \<C-V>"
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
485 call assert_equal(['n ,k <Nop>'],
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
486 \ execute('nmap ,k')->trim()->split("\n"))
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
487
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
488 nmapclear
18329
1784afa654c8 patch 8.1.2159: some mappings are listed twice
Bram Moolenaar <Bram@vim.org>
parents: 17726
diff changeset
489 endfunc
18689
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
490
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
491 func Test_expr_map_restore_cursor()
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
492 CheckScreendump
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
493
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
494 let lines =<< trim END
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
495 call setline(1, ['one', 'two', 'three'])
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
496 2
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
497 set ls=2
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
498 hi! link StatusLine ErrorMsg
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
499 noremap <expr> <C-B> Func()
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
500 func Func()
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
501 let g:on = !get(g:, 'on', 0)
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
502 redraws
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
503 return ''
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
504 endfunc
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
505 func Status()
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
506 return get(g:, 'on', 0) ? '[on]' : ''
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
507 endfunc
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
508 set stl=%{Status()}
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
509 END
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
510 call writefile(lines, 'XtestExprMap')
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
511 let buf = RunVimInTerminal('-S XtestExprMap', #{rows: 10})
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
512 call term_wait(buf)
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
513 call term_sendkeys(buf, "\<C-B>")
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
514 call VerifyScreenDump(buf, 'Test_map_expr_1', {})
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
515
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
516 " clean up
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
517 call StopVimInTerminal(buf)
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
518 call delete('XtestExprMap')
8cc12c8d7842 patch 8.1.2336: when an expr mapping moves the cursor it is not restored
Bram Moolenaar <Bram@vim.org>
parents: 18346
diff changeset
519 endfunc
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
520
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
521 " Test for mapping errors
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
522 func Test_map_error()
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
523 call assert_fails('unmap', 'E474:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
524 call assert_fails("exe 'map ' .. repeat('a', 51) .. ' :ls'", 'E474:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
525 call assert_fails('unmap abc', 'E31:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
526 call assert_fails('unabbr abc', 'E24:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
527 call assert_equal('', maparg(''))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
528 call assert_fails('echo maparg("abc", [])', 'E730:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
529
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
530 " unique map
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
531 map ,w /[#&!]<CR>
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
532 call assert_fails("map <unique> ,w /[#&!]<CR>", 'E227:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
533 " unique buffer-local map
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
534 call assert_fails("map <buffer> <unique> ,w /[.,;]<CR>", 'E225:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
535 unmap ,w
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
536
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
537 " unique abbreviation
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
538 abbr SP special
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
539 call assert_fails("abbr <unique> SP special", 'E226:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
540 " unique buffer-local map
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
541 call assert_fails("abbr <buffer> <unique> SP special", 'E224:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
542 unabbr SP
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
543
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
544 call assert_fails('mapclear abc', 'E474:')
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
545 call assert_fails('abclear abc', 'E474:')
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
546 call assert_fails('abbr $xyz abc', 'E474:')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
547
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
548 " space character in an abbreviation
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
549 call assert_fails('abbr ab<space> ABC', 'E474:')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
550
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
551 " invalid <expr> map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
552 map <expr> ,f abc
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
553 call assert_fails('normal ,f', 'E121:')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
554 unmap <expr> ,f
19370
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19178
diff changeset
555
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19178
diff changeset
556 " Recursive use of :normal in a map
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19178
diff changeset
557 set maxmapdepth=100
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19178
diff changeset
558 map gq :normal gq<CR>
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19178
diff changeset
559 call assert_fails('normal gq', 'E192:')
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19178
diff changeset
560 unmap gq
02111977dd05 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions
Bram Moolenaar <Bram@vim.org>
parents: 19178
diff changeset
561 set maxmapdepth&
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
562 endfunc
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
563
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
564 " Test for <special> key mapping
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
565 func Test_map_special()
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
566 new
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
567 let old_cpo = &cpo
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
568 set cpo+=<
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
569 imap <F12> Blue
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
570 call feedkeys("i\<F12>", "x")
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
571 call assert_equal("<F12>", getline(1))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
572 call feedkeys("ddi<F12>", "x")
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
573 call assert_equal("Blue", getline(1))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
574 iunmap <F12>
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
575 imap <special> <F12> Green
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
576 call feedkeys("ddi\<F12>", "x")
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
577 call assert_equal("Green", getline(1))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
578 call feedkeys("ddi<F12>", "x")
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
579 call assert_equal("<F12>", getline(1))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
580 iunmap <special> <F12>
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
581 let &cpo = old_cpo
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
582 %bwipe!
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
583 endfunc
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
584
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
585 " Test for hasmapto()
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
586 func Test_hasmapto()
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
587 call assert_equal(0, hasmapto('/^\k\+ ('))
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
588 map ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
589 call assert_equal(1, hasmapto('/^\k\+ ('))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
590 unmap ,f
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
591
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
592 " Insert mode mapping
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
593 call assert_equal(0, hasmapto('/^\k\+ (', 'i'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
594 imap ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
595 call assert_equal(1, hasmapto('/^\k\+ (', 'i'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
596 iunmap ,f
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
597
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
598 " Normal mode mapping
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
599 call assert_equal(0, hasmapto('/^\k\+ (', 'n'))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
600 nmap ,f /^\k\+ (<CR>
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
601 call assert_equal(1, hasmapto('/^\k\+ ('))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
602 call assert_equal(1, hasmapto('/^\k\+ (', 'n'))
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
603 nunmap ,f
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
604
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
605 " Visual and Select mode mapping
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
606 call assert_equal(0, hasmapto('/^\k\+ (', 'v'))
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
607 call assert_equal(0, hasmapto('/^\k\+ (', 'x'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
608 call assert_equal(0, hasmapto('/^\k\+ (', 's'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
609 vmap ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
610 call assert_equal(1, hasmapto('/^\k\+ (', 'v'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
611 call assert_equal(1, hasmapto('/^\k\+ (', 'x'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
612 call assert_equal(1, hasmapto('/^\k\+ (', 's'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
613 vunmap ,f
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
614
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
615 " Visual mode mapping
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
616 call assert_equal(0, hasmapto('/^\k\+ (', 'x'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
617 xmap ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
618 call assert_equal(1, hasmapto('/^\k\+ (', 'v'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
619 call assert_equal(1, hasmapto('/^\k\+ (', 'x'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
620 call assert_equal(0, hasmapto('/^\k\+ (', 's'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
621 xunmap ,f
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
622
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
623 " Select mode mapping
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
624 call assert_equal(0, hasmapto('/^\k\+ (', 's'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
625 smap ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
626 call assert_equal(1, hasmapto('/^\k\+ (', 'v'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
627 call assert_equal(0, hasmapto('/^\k\+ (', 'x'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
628 call assert_equal(1, hasmapto('/^\k\+ (', 's'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
629 sunmap ,f
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
630
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
631 " Operator-pending mode mapping
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
632 call assert_equal(0, hasmapto('/^\k\+ (', 'o'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
633 omap ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
634 call assert_equal(1, hasmapto('/^\k\+ (', 'o'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
635 ounmap ,f
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
636
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
637 " Language mapping
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
638 call assert_equal(0, hasmapto('/^\k\+ (', 'l'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
639 lmap ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
640 call assert_equal(1, hasmapto('/^\k\+ (', 'l'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
641 lunmap ,f
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
642
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
643 " Cmdline mode mapping
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
644 call assert_equal(0, hasmapto('/^\k\+ (', 'c'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
645 cmap ,f /^\k\+ (<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
646 call assert_equal(1, hasmapto('/^\k\+ (', 'c'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
647 cunmap ,f
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
648
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
649 call assert_equal(0, hasmapto('/^\k\+ (', 'n', 1))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
650 endfunc
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
651
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
652 " Test for command-line completion of maps
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
653 func Test_mapcomplete()
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
654 call assert_equal(['<buffer>', '<expr>', '<nowait>', '<script>',
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
655 \ '<silent>', '<special>', '<unique>'],
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
656 \ getcompletion('', 'mapping'))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
657 call assert_equal([], getcompletion(',d', 'mapping'))
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
658
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
659 call feedkeys(":unmap <buf\<C-A>\<C-B>\"\<CR>", 'tx')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
660 call assert_equal('"unmap <buffer>', @:)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
661
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
662 call feedkeys(":unabbr <buf\<C-A>\<C-B>\"\<CR>", 'tx')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
663 call assert_equal('"unabbr <buffer>', @:)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
664
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
665 call feedkeys(":abbr! \<C-A>\<C-B>\"\<CR>", 'tx')
19170
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
666 call assert_equal("\"abbr! \x01", @:)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
667
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
668 " Multiple matches for a map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
669 nmap ,f /H<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
670 omap ,f /H<CR>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
671 call feedkeys(":map ,\<C-A>\<C-B>\"\<CR>", 'tx')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
672 call assert_equal('"map ,f', @:)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
673 mapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
674 endfunc
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
675
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
676 " Test for <expr> in abbreviation
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
677 func Test_expr_abbr()
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
678 new
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
679 iabbr <expr> teh "the"
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
680 call feedkeys("iteh ", "tx")
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
681 call assert_equal('the ', getline(1))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
682 iabclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
683 call setline(1, '')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
684
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
685 " invalid <expr> abbreviation
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
686 abbr <expr> hte GetAbbr()
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
687 call assert_fails('normal ihte ', 'E117:')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
688 call assert_equal(' ', getline(1))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
689 unabbr <expr> hte
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
690
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
691 close!
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
692 endfunc
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
693
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
694 " Test for storing mappings in different modes in a vimrc file
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
695 func Test_mkvimrc_mapmodes()
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
696 map a1 /a1
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
697 nmap a2 /a2
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
698 vmap a3 /a3
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
699 smap a4 /a4
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
700 xmap a5 /a5
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
701 omap a6 /a6
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
702 map! a7 /a7
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
703 imap a8 /a8
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
704 lmap a9 /a9
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
705 cmap a10 /a10
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
706 tmap a11 /a11
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
707 " Normal + Visual map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
708 map a12 /a12
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
709 sunmap a12
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
710 ounmap a12
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
711 " Normal + Selectmode map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
712 map a13 /a13
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
713 xunmap a13
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
714 ounmap a13
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
715 " Normal + OpPending map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
716 map a14 /a14
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
717 vunmap a14
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
718 " Visual + Selectmode map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
719 map a15 /a15
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
720 nunmap a15
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
721 ounmap a15
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
722 " Visual + OpPending map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
723 map a16 /a16
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
724 nunmap a16
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
725 sunmap a16
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
726 " Selectmode + OpPending map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
727 map a17 /a17
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
728 nunmap a17
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
729 xunmap a17
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
730 " Normal + Visual + Selectmode map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
731 map a18 /a18
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
732 ounmap a18
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
733 " Normal + Visual + OpPending map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
734 map a19 /a19
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
735 sunmap a19
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
736 " Normal + Selectmode + OpPending map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
737 map a20 /a20
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
738 xunmap a20
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
739 " Visual + Selectmode + OpPending map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
740 map a21 /a21
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
741 nunmap a21
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
742 " Mapping to Nop
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
743 map a22 <Nop>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
744 " Script local mapping
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
745 map <script> a23 /a23
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
746
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
747 " Newline in {lhs} and {rhs} of a map
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
748 exe "map a24\<C-V>\<C-J> ia24\<C-V>\<C-J><Esc>"
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
749
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
750 " Abbreviation
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
751 abbr a25 A25
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
752 cabbr a26 A26
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
753 iabbr a27 A27
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
754
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
755 mkvimrc! Xvimrc
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
756 let l = readfile('Xvimrc')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
757 call assert_equal(['map a1 /a1'], filter(copy(l), 'v:val =~ " a1 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
758 call assert_equal(['nmap a2 /a2'], filter(copy(l), 'v:val =~ " a2 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
759 call assert_equal(['vmap a3 /a3'], filter(copy(l), 'v:val =~ " a3 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
760 call assert_equal(['smap a4 /a4'], filter(copy(l), 'v:val =~ " a4 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
761 call assert_equal(['xmap a5 /a5'], filter(copy(l), 'v:val =~ " a5 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
762 call assert_equal(['omap a6 /a6'], filter(copy(l), 'v:val =~ " a6 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
763 call assert_equal(['map! a7 /a7'], filter(copy(l), 'v:val =~ " a7 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
764 call assert_equal(['imap a8 /a8'], filter(copy(l), 'v:val =~ " a8 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
765 call assert_equal(['lmap a9 /a9'], filter(copy(l), 'v:val =~ " a9 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
766 call assert_equal(['cmap a10 /a10'], filter(copy(l), 'v:val =~ " a10 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
767 call assert_equal(['tmap a11 /a11'], filter(copy(l), 'v:val =~ " a11 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
768 call assert_equal(['nmap a12 /a12', 'xmap a12 /a12'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
769 \ filter(copy(l), 'v:val =~ " a12 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
770 call assert_equal(['nmap a13 /a13', 'smap a13 /a13'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
771 \ filter(copy(l), 'v:val =~ " a13 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
772 call assert_equal(['nmap a14 /a14', 'omap a14 /a14'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
773 \ filter(copy(l), 'v:val =~ " a14 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
774 call assert_equal(['vmap a15 /a15'], filter(copy(l), 'v:val =~ " a15 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
775 call assert_equal(['xmap a16 /a16', 'omap a16 /a16'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
776 \ filter(copy(l), 'v:val =~ " a16 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
777 call assert_equal(['smap a17 /a17', 'omap a17 /a17'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
778 \ filter(copy(l), 'v:val =~ " a17 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
779 call assert_equal(['nmap a18 /a18', 'vmap a18 /a18'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
780 \ filter(copy(l), 'v:val =~ " a18 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
781 call assert_equal(['nmap a19 /a19', 'xmap a19 /a19', 'omap a19 /a19'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
782 \ filter(copy(l), 'v:val =~ " a19 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
783 call assert_equal(['nmap a20 /a20', 'smap a20 /a20', 'omap a20 /a20'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
784 \ filter(copy(l), 'v:val =~ " a20 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
785 call assert_equal(['vmap a21 /a21', 'omap a21 /a21'],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
786 \ filter(copy(l), 'v:val =~ " a21 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
787 call assert_equal(['map a22 <Nop>'], filter(copy(l), 'v:val =~ " a22 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
788 call assert_equal([], filter(copy(l), 'v:val =~ " a23 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
789 call assert_equal(["map a24<NL> ia24<NL>\x16\e"],
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
790 \ filter(copy(l), 'v:val =~ " a24"'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
791
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
792 call assert_equal(['abbr a25 A25'], filter(copy(l), 'v:val =~ " a25 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
793 call assert_equal(['cabbr a26 A26'], filter(copy(l), 'v:val =~ " a26 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
794 call assert_equal(['iabbr a27 A27'], filter(copy(l), 'v:val =~ " a27 "'))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
795 call delete('Xvimrc')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
796
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
797 mapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
798 nmapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
799 vmapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
800 xmapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
801 smapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
802 omapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
803 imapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
804 lmapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
805 cmapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
806 tmapclear
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
807 endfunc
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
808
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
809 " Test for recursive mapping ('maxmapdepth')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
810 func Test_map_recursive()
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
811 map x y
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
812 map y x
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
813 call assert_fails('normal x', 'E223:')
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
814 unmap x
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
815 unmap y
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
816 endfunc
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
817
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
818 " Test for removing an abbreviation using {rhs} and with space after {lhs}
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
819 func Test_abbr_remove()
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
820 abbr foo bar
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
821 let d = maparg('foo', 'i', 1, 1)
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
822 call assert_equal(['foo', 'bar', '!'], [d.lhs, d.rhs, d.mode])
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
823 unabbr bar
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
824 call assert_equal({}, maparg('foo', 'i', 1, 1))
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
825
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
826 abbr foo bar
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
827 unabbr foo<space><tab>
ad40333f2ec0 patch 8.2.0144: some mapping code is not fully tested
Bram Moolenaar <Bram@vim.org>
parents: 19149
diff changeset
828 call assert_equal({}, maparg('foo', 'i', 1, 1))
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
829 endfunc
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
830
19178
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
831 " Trigger an abbreviation using a special key
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
832 func Test_abbr_trigger_special()
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
833 new
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
834 iabbr teh the
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
835 call feedkeys("iteh\<F2>\<Esc>", 'xt')
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
836 call assert_equal('the<F2>', getline(1))
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
837 iunab teh
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
838 close!
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
839 endfunc
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
840
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
841 " Test for '<' in 'cpoptions'
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
842 func Test_map_cpo_special_keycode()
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
843 set cpo-=<
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
844 imap x<Bslash>k Test
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
845 let d = maparg('x<Bslash>k', 'i', 0, 1)
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
846 call assert_equal(['x\k', 'Test', 'i'], [d.lhs, d.rhs, d.mode])
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
847 call feedkeys(":imap x\<C-A>\<C-B>\"\<CR>", 'tx')
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
848 call assert_equal('"imap x\k', @:)
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
849 iunmap x<Bslash>k
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
850 set cpo+=<
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
851 imap x<Bslash>k Test
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
852 let d = maparg('x<Bslash>k', 'i', 0, 1)
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
853 call assert_equal(['x<Bslash>k', 'Test', 'i'], [d.lhs, d.rhs, d.mode])
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
854 call feedkeys(":imap x\<C-A>\<C-B>\"\<CR>", 'tx')
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
855 call assert_equal('"imap x<Bslash>k', @:)
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
856 iunmap x<Bslash>k
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
857 set cpo-=<
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
858 " Modifying 'cpo' above adds some default mappings, remove them
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
859 mapclear
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
860 mapclear!
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
861 endfunc
f7081bd2680e patch 8.2.0148: mapping related function in wrong source file
Bram Moolenaar <Bram@vim.org>
parents: 19170
diff changeset
862
19149
643c6c3c0da4 patch 8.2.0134: some map functionality not covered by tests
Bram Moolenaar <Bram@vim.org>
parents: 18689
diff changeset
863 " vim: shiftwidth=2 sts=2 expandtab