xref: /vim-8.2.3635/src/testdir/test_langmap.vim (revision 1d59aa1f)
1" tests for 'langmap'
2
3source check.vim
4CheckFeature langmap
5
6func Test_langmap()
7  new
8  set langmap=}l,^x,%v
9
10  call setline(1, ['abc'])
11  call feedkeys('gg0}^', 'tx')
12  call assert_equal('ac', getline(1))
13
14  " in Replace mode
15  " need silent! to avoid a delay when entering Insert mode
16  call setline(1, ['abcde'])
17  silent! call feedkeys("gg0lR%{z\<Esc>00", 'tx')
18  call assert_equal('a%{ze', getline(1))
19
20  " in Select mode
21  " need silent! to avoid a delay when entering Insert mode
22  call setline(1, ['abcde'])
23  silent! call feedkeys("gg0}%}\<C-G>}^\<Esc>00", 'tx')
24  call assert_equal('a}^de', getline(1))
25
26  " Error cases
27  call assert_fails('set langmap=aA,b', 'E357:')
28  call assert_fails('set langmap=z;y;y;z', 'E358:')
29
30  " Map character > 256
31  enew!
32  set langmap=āx,ăl,āx
33  call setline(1, ['abcde'])
34  call feedkeys('gg2lā', 'tx')
35  call assert_equal('abde', getline(1))
36
37  " special characters in langmap
38  enew!
39  call setline(1, ['Hello World'])
40  set langmap=\\;\\,,\\,\\;
41  call feedkeys('ggfo,', 'tx')
42  call assert_equal(8, col('.'))
43  call feedkeys(';', 'tx')
44  call assert_equal(5, col('.'))
45  set langmap&
46  set langmap=\\;\\,;\\,\\;
47  call feedkeys('ggfo,', 'tx')
48  call assert_equal(8, col('.'))
49  call feedkeys(';', 'tx')
50  call assert_equal(5, col('.'))
51
52  set langmap&
53  quit!
54endfunc
55
56" vim: shiftwidth=2 sts=2 expandtab
57