blob: 4d377904f99d01b5c6f16369b3589f2dbbb91a1f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-- Test for mappings and abbreviations
local helpers = require('test.functional.helpers')
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
local execute, expect = helpers.execute, helpers.expect
describe('mapping', function()
before_each(clear)
it('is working', function()
insert([[
test starts here:
]])
-- Abbreviations with р (0x80) should work.
execute('inoreab чкпр vim')
feed('GAчкпр <esc>')
-- langmap should not get remapped in insert mode.
execute('inoremap { FAIL_ilangmap')
execute('set langmap=+{ langnoremap')
feed('o+<esc>')
-- Insert mode expr mapping with langmap.
execute('inoremap <expr> { "FAIL_iexplangmap"')
feed('o+<esc>')
-- langmap should not get remapped in cmdline mode.
execute('cnoremap { FAIL_clangmap')
feed('o+<esc>')
execute('cunmap {')
-- cmdline mode expr mapping with langmap.
execute('cnoremap <expr> { "FAIL_cexplangmap"')
feed('o+<esc>')
execute('cunmap {')
-- Assert buffer contents.
expect([[
test starts here:
vim
+
+
+
+]])
end)
it('i_CTRL-G_U', function()
-- <c-g>U<cursor> works only within a single line
execute('imapclear')
execute('imap ( ()<c-g>U<left>')
feed('G2o<esc>ki<cr>Test1: text with a (here some more text<esc>k.')
-- test undo
feed('G2o<esc>ki<cr>Test2: text wit a (here some more text [und undo]<c-g>u<esc>k.u')
execute('imapclear')
execute('set whichwrap=<,>,[,]')
feed('G3o<esc>2k')
execute([[:exe ":norm! iTest3: text with a (parenthesis here\<C-G>U\<Right>new line here\<esc>\<up>\<up>."]])
expect([[
Test1: text with a (here some more text)
Test1: text with a (here some more text)
Test2: text wit a (here some more text [und undo])
new line here
Test3: text with a (parenthesis here
new line here
]])
end)
end)
|