| Test for linebreak and list option (non-utf8) |
| |
| STARTTEST |
| :so small.vim |
| :if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! | endif |
| :10new|:vsp|:vert resize 20 |
| :put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \" |
| :norm! zt |
| :set ts=4 sw=4 sts=4 linebreak sbr=+ wrap |
| :fu! ScreenChar(width) |
| : let c='' |
| : for j in range(1,4) |
| : for i in range(1,a:width) |
| : let c.=nr2char(screenchar(j, i)) |
| : endfor |
| : let c.="\n" |
| : endfor |
| : return c |
| :endfu |
| :fu! DoRecordScreen() |
| : wincmd l |
| : $put =printf(\"\n%s\", g:test) |
| : $put =g:line |
| : wincmd p |
| :endfu |
| :" |
| :let g:test="Test 1: set linebreak" |
| :redraw! |
| :let line=ScreenChar(winwidth(0)) |
| :call DoRecordScreen() |
| :" |
| :let g:test="Test 2: set linebreak + set list" |
| :set linebreak list listchars= |
| :redraw! |
| :let line=ScreenChar(winwidth(0)) |
| :call DoRecordScreen() |
| :" |
| :let g:test ="Test 3: set linebreak nolist" |
| :set nolist linebreak |
| :redraw! |
| :let line=ScreenChar(winwidth(0)) |
| :call DoRecordScreen() |
| :" |
| :let g:test ="Test 4: set linebreak with tab and 1 line as long as screen: should break!" |
| :set nolist linebreak ts=8 |
| :let line="1\t".repeat('a', winwidth(0)-2) |
| :$put =line |
| :$ |
| :norm! zt |
| :redraw! |
| :let line=ScreenChar(winwidth(0)) |
| :call DoRecordScreen() |
| :let line="_S_\t bla" |
| :$put =line |
| :$ |
| :norm! zt |
| :" |
| :let g:test ="Test 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)" |
| :set cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab |
| :syn match ConcealVar contained /_/ conceal |
| :syn match All /.*/ contains=ConcealVar |
| :let line=ScreenChar(winwidth(0)) |
| :call DoRecordScreen() |
| :set cpo&vim linebreak |
| :" |
| :let g:test ="Test 6: set linebreak with visual block mode" |
| :let line="REMOVE: this not" |
| :$put =g:test |
| :$put =line |
| :let line="REMOVE: aaaaaaaaaaaaa" |
| :$put =line |
| :1/^REMOVE: |
| 0jf x:$put |
| :set cpo&vim linebreak |
| :" |
| :let g:test ="Test 7: set linebreak with visual block mode and v_b_A" |
| :$put =g:test |
| Golong line: 40afoobar aTARGET at end |
| :exe "norm! $3B\<C-v>eAx\<Esc>" |
| :set cpo&vim linebreak sbr= |
| :" |
| :let g:test ="Test 8: set linebreak with visual char mode and changing block" |
| :$put =g:test |
| Go1111-1111-1111-11-1111-1111-11110f-lv3lc2222bgj. |
| :" |
| :let g:test ="Test 9: using redo after block visual mode" |
| :$put =g:test |
| Go |
| aaa |
| aaa |
| a2k2j~e. |
| :" |
| :let g:test ="Test 10: using normal commands after block-visual" |
| :$put =g:test |
| :set linebreak |
| Go |
| abcd{ef |
| ghijklm |
| no}pqrs2k0f{c% |
| :" |
| :let g:test ="Test 11: using block replace mode after wrapping" |
| :$put =g:test |
| :set linebreak wrap |
| Go150aayypk147|jr0 |
| :" |
| :let g:test ="Test 12: set linebreak list listchars=space:_,tab:>-,tail:-,eol:$" |
| :set list listchars=space:_,trail:-,tab:>-,eol:$ |
| :$put =g:test |
| :let line="a aaaaaaaaaaaaaaaaaaaaaa\ta " |
| :$put =line |
| :$ |
| :norm! zt |
| :redraw! |
| :let line=ScreenChar(winwidth(0)) |
| :call DoRecordScreen() |
| :%w! test.out |
| :qa! |
| ENDTEST |
| dummy text |