1" Tests for 'listchars' display with 'list' and :list 2 3source view_util.vim 4 5func Test_listchars() 6 enew! 7 set ff=unix 8 set list 9 10 set listchars+=tab:>-,space:.,trail:< 11 call append(0, [ 12 \ ' aa ', 13 \ ' bb ', 14 \ ' cccc ', 15 \ 'dd ee ', 16 \ ' ' 17 \ ]) 18 let expected = [ 19 \ '>-------aa>-----$', 20 \ '..bb>---<<$', 21 \ '...cccc><$', 22 \ 'dd........ee<<>-$', 23 \ '<$' 24 \ ] 25 redraw! 26 for i in range(1, 5) 27 call cursor(i, 1) 28 call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$'))) 29 endfor 30 31 set listchars-=trail:< 32 let expected = [ 33 \ '>-------aa>-----$', 34 \ '..bb>---..$', 35 \ '...cccc>.$', 36 \ 'dd........ee..>-$', 37 \ '.$' 38 \ ] 39 redraw! 40 for i in range(1, 5) 41 call cursor(i, 1) 42 call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$'))) 43 endfor 44 45 set listchars+=trail:< 46 set nolist 47 normal ggdG 48 call append(0, [ 49 \ ' fff ', 50 \ ' gg ', 51 \ ' h ', 52 \ 'iii ', 53 \ ]) 54 let l = split(execute("%list"), "\n") 55 call assert_equal([ 56 \ '..fff>--<<$', 57 \ '>-------gg>-----$', 58 \ '.....h>-$', 59 \ 'iii<<<<><<$', '$'], l) 60 61 enew! 62 set listchars& ff& 63endfunc 64