xref: /vim-8.2.3635/src/testdir/test_tab.vim (revision 51ad4eaa)
1
2" Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
3" Also test that dv_ works correctly
4func Test_smarttab()
5  enew!
6  set smarttab expandtab ts=8 sw=4
7  " make sure that backspace works, no matter what termcap is used
8  exe "set t_kD=\<C-V>x7f t_kb=\<C-V>x08"
9  call append(0, ['start text',
10	      \ "\t\tsome test text",
11	      \ 'test text',
12	      \ "\t\tother test text",
13	      \ '    a cde',
14	      \ '    f ghi',
15	      \ 'test text',
16	      \ '  Second line beginning with whitespace'
17	      \ ])
18  call cursor(1, 1)
19  exe "normal /some\<CR>"
20  exe "normal r\t"
21  call assert_equal("\t\t    ome test text", getline('.'))
22  set noexpandtab
23  exe "normal /other\<CR>"
24  exe "normal r\t"
25  call assert_equal("\t\t    ther test text", getline('.'))
26
27  " Test replacing with Tabs and then backspacing to undo it
28  exe "normal j0wR\t\t\t\<BS>\<BS>\<BS>"
29  call assert_equal("    a cde", getline('.'))
30  " Test replacing with Tabs
31  exe "normal j0wR\t\t\t"
32  call assert_equal("    \t\thi", getline('.'))
33
34  " Test that copyindent works with expandtab set
35  set expandtab smartindent copyindent ts=8 sw=8 sts=8
36  exe "normal jo{\<CR>x"
37  call assert_equal('{', getline(line('.') - 1))
38  call assert_equal('        x', getline('.'))
39  set nosol
40  exe "normal /Second line/\<CR>"
41  exe "normal fwdv_"
42  call assert_equal('  with whitespace', getline('.'))
43  enew!
44  set expandtab& smartindent& copyindent& ts& sw& sts&
45endfunc
46