blob: 164f12a809869fc72f7ac49172b57753ff528e6c [file] [log] [blame]
Bram Moolenaarb5647f72014-07-16 17:01:53 +02001Test for linebreak and list option (non-utf8)
Bram Moolenaar86b17e92014-07-02 20:00:47 +02002
3STARTTEST
4:so small.vim
Bram Moolenaar404406a2014-10-09 13:24:43 +02005:if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! | endif
Bram Moolenaar86b17e92014-07-02 20:00:47 +02006:10new|:vsp|:vert resize 20
Bram Moolenaarb5647f72014-07-16 17:01:53 +02007:put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \"
Bram Moolenaar86b17e92014-07-02 20:00:47 +02008:norm! zt
9:set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
10:fu! ScreenChar(width)
11: let c=''
12: for j in range(1,4)
13: for i in range(1,a:width)
14: let c.=nr2char(screenchar(j, i))
15: endfor
16: let c.="\n"
17: endfor
18: return c
19:endfu
20:fu! DoRecordScreen()
21: wincmd l
22: $put =printf(\"\n%s\", g:test)
23: $put =g:line
24: wincmd p
25:endfu
26:let g:test="Test 1: set linebreak"
27:redraw!
28:let line=ScreenChar(winwidth(0))
29:call DoRecordScreen()
30:let g:test="Test 2: set linebreak + set list"
31:set linebreak list listchars=
32:redraw!
33:let line=ScreenChar(winwidth(0))
34:call DoRecordScreen()
Bram Moolenaarb5647f72014-07-16 17:01:53 +020035:let g:test ="Test 3: set linebreak nolist"
Bram Moolenaar86b17e92014-07-02 20:00:47 +020036:set nolist linebreak
37:redraw!
38:let line=ScreenChar(winwidth(0))
39:call DoRecordScreen()
Bram Moolenaarb5647f72014-07-16 17:01:53 +020040:let g:test ="Test 4: set linebreak with tab and 1 line as long as screen: should break!"
Bram Moolenaar86b17e92014-07-02 20:00:47 +020041:set nolist linebreak ts=8
42:let line="1\t".repeat('a', winwidth(0)-2)
43:$put =line
44:$
45:norm! zt
46:redraw!
47:let line=ScreenChar(winwidth(0))
48:call DoRecordScreen()
Bram Moolenaar49f9dd72014-08-29 12:08:43 +020049:let line="_S_\t bla"
50:$put =line
51:$
52:norm! zt
53:let g:test ="Test 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)"
54:set cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab
55:syn match ConcealVar contained /_/ conceal
56:syn match All /.*/ contains=ConcealVar
57:let line=ScreenChar(winwidth(0))
58:call DoRecordScreen()
Bram Moolenaar404406a2014-10-09 13:24:43 +020059:set cpo&vim linebreak
60:let g:test ="Test 6: set linebreak with visual block mode"
61:let line="REMOVE: this not"
Bram Moolenaar74db34c2015-06-25 13:30:46 +020062:$put =g:test
Bram Moolenaar404406a2014-10-09 13:24:43 +020063:$put =line
64:let line="REMOVE: aaaaaaaaaaaaa"
65:$put =line
66:1/^REMOVE:
670jf x:$put
Bram Moolenaar74db34c2015-06-25 13:30:46 +020068:set cpo&vim linebreak
69:let g:test ="Test 7: set linebreak with visual block mode and v_b_A"
70:$put =g:test
71Golong line: 40afoobar aTARGET at end
72:exe "norm! $3B\<C-v>eAx\<Esc>"
73:set cpo&vim linebreak sbr=
74:let g:test ="Test 8: set linebreak with visual char mode and changing block"
75:$put =g:test
76Go1111-1111-1111-11-1111-1111-11110f-lv3lc2222bgj.
Bram Moolenaar31b259b2015-07-28 11:21:32 +020077:let g:test ="Test 9: using redo after block visual mode"
78:$put =g:test
79Go
80aaa
81aaa
82a2k2j~e.
Bram Moolenaar86b17e92014-07-02 20:00:47 +020083:%w! test.out
84:qa!
85ENDTEST
86dummy text