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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
" Tests for 'listchars' display with 'list' and :list
source view_util.vim
func Test_listchars()
enew!
set ff=unix
set list
set listchars+=tab:>-,space:.,trail:<
call append(0, [
\ ' aa ',
\ ' bb ',
\ ' cccc ',
\ 'dd ee ',
\ ' '
\ ])
let expected = [
\ '>-------aa>-----$',
\ '..bb>---<<$',
\ '...cccc><$',
\ 'dd........ee<<>-$',
\ '<$'
\ ]
redraw!
for i in range(1, 5)
call cursor(i, 1)
call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
endfor
set listchars-=trail:<
let expected = [
\ '>-------aa>-----$',
\ '..bb>---..$',
\ '...cccc>.$',
\ 'dd........ee..>-$',
\ '.$'
\ ]
redraw!
for i in range(1, 5)
call cursor(i, 1)
call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
endfor
" tab with 3rd character.
set listchars-=tab:>-
set listchars+=tab:<=>,trail:-
let expected = [
\ '<======>aa<====>$',
\ '..bb<==>--$',
\ '...cccc>-$',
\ 'dd........ee--<>$',
\ '-$'
\ ]
redraw!
for i in range(1, 5)
call cursor(i, 1)
call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
endfor
set listchars-=trail:-
let expected = [
\ '<======>aa<====>$',
\ '..bb<==>..$',
\ '...cccc>.$',
\ 'dd........ee..<>$',
\ '.$'
\ ]
redraw!
for i in range(1, 5)
call cursor(i, 1)
call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
endfor
set listchars-=tab:<=>
set listchars+=tab:>-
set listchars+=trail:<
set nolist
normal ggdG
call append(0, [
\ ' fff ',
\ ' gg ',
\ ' h ',
\ 'iii ',
\ ])
let l = split(execute("%list"), "\n")
call assert_equal([
\ '..fff>--<<$',
\ '>-------gg>-----$',
\ '.....h>-$',
\ 'iii<<<<><<$', '$'], l)
" test nbsp
normal ggdG
set listchars=nbsp:X,trail:Y
set list
" Non-breaking space
let nbsp = nr2char(0xa0)
call append(0, [ ">".nbsp."<" ])
let expected = '>X< '
redraw!
call cursor(1, 1)
call assert_equal([expected], ScreenLines(1, virtcol('$')))
set listchars=nbsp:X
redraw!
call cursor(1, 1)
call assert_equal([expected], ScreenLines(1, virtcol('$')))
enew!
set listchars& ff&
endfunc
|