diff --git a/src/testdir/test_listchars.vim b/src/testdir/test_listchars.vim
index 2f495c3..8628fb2 100644
--- a/src/testdir/test_listchars.vim
+++ b/src/testdir/test_listchars.vim
@@ -4,6 +4,36 @@
 source view_util.vim
 source screendump.vim
 
+func Check_listchars(expected, end_lnum, end_scol = -1, leftcol = 0)
+  if a:leftcol > 0
+    let save_wrap = &wrap
+    set nowrap
+    call cursor(1, 1)
+    exe 'normal! ' .. a:leftcol .. 'zl'
+  endif
+
+  redraw!
+  for i in range(1, a:end_lnum)
+    if a:leftcol > 0
+      let col = virtcol2col(0, i, a:leftcol)
+      let col += getline(i)->strpart(col - 1, 1, v:true)->len()
+      call cursor(i, col)
+      redraw
+      call assert_equal(a:leftcol, winsaveview().leftcol)
+    else
+      call cursor(i, 1)
+    end
+
+    let end_scol = a:end_scol < 0 ? '$'->virtcol() - a:leftcol : a:end_scol
+    call assert_equal([a:expected[i - 1]->strcharpart(a:leftcol)],
+          \ ScreenLines(i, end_scol))
+  endfor
+
+  if a:leftcol > 0
+    let &wrap = save_wrap
+  endif
+endfunc
+
 func Test_listchars()
   enew!
   set ff=unix
@@ -24,11 +54,8 @@
 	      \ 'dd........ee<<>-$',
 	      \ '<$'
 	      \ ]
-  redraw!
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, '$'->virtcol()))
-  endfor
+  call Check_listchars(expected, 5)
+  call Check_listchars(expected, 4, -1, 5)
 
   set listchars-=trail:<
   let expected = [
@@ -38,11 +65,8 @@
 	      \ 'dd........ee..>-$',
 	      \ '.$'
 	      \ ]
-  redraw!
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
+  call Check_listchars(expected, 5)
+  call Check_listchars(expected, 4, -1, 5)
 
   " tab with 3rd character.
   set listchars-=tab:>-
@@ -54,11 +78,8 @@
 	      \ 'dd........ee--<>$',
 	      \ '-$'
 	      \ ]
-  redraw!
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
+  call Check_listchars(expected, 5)
+  call Check_listchars(expected, 4, -1, 5)
 
   " tab with 3rd character and linebreak set
   set listchars-=tab:<=>
@@ -71,11 +92,7 @@
 	      \ 'dd........ee--<>$',
 	      \ '-$'
 	      \ ]
-  redraw!
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
+  call Check_listchars(expected, 5)
   set nolinebreak
   set listchars-=tab:<·>
   set listchars+=tab:<=>
@@ -88,11 +105,8 @@
 	      \ 'dd........ee..<>$',
 	      \ '.$'
 	      \ ]
-  redraw!
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
+  call Check_listchars(expected, 5)
+  call Check_listchars(expected, 4, -1, 5)
 
   set listchars-=tab:<=>
   set listchars+=tab:>-
@@ -110,7 +124,8 @@
 	      \ '..fff>--<<$',
 	      \ '>-------gg>-----$',
 	      \ '.....h>-$',
-	      \ 'iii<<<<><<$', '$'], l)
+	      \ 'iii<<<<><<$',
+	      \ '$'], l)
 
   " Test lead and trail
   normal ggdG
@@ -132,14 +147,10 @@
 	      \ 'h<<<<<<<<<<<$',
 	      \ '<<<<<<<<<<<<$',
 	      \ '>>>>0xx0<<<<$',
-        \ '$'
+	      \ '$'
 	      \ ]
-  redraw!
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
-
+  call Check_listchars(expected, 6)
+  call Check_listchars(expected, 5, -1, 6)
   call assert_equal(expected, split(execute("%list"), "\n"))
 
   " Test multispace
@@ -162,14 +173,10 @@
 	      \ ' hyYzZyYzZyY$',
 	      \ 'yYzZyYzZyYj $',
 	      \ 'yYzZ0yY0yYzZ$',
-        \ '$'
+	      \ '$'
 	      \ ]
-  redraw!
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
-
+  call Check_listchars(expected, 6)
+  call Check_listchars(expected, 5, -1, 6)
   call assert_equal(expected, split(execute("%list"), "\n"))
 
   " Test leadmultispace + multispace
@@ -192,15 +199,14 @@
 	      \ ' hyYzZyYzZyY$',
 	      \ '.-+*.-+*.-j $',
 	      \ '.-+*0yY0yYzZ$',
-        \ '$'
+	      \ '$'
 	      \ ]
-  redraw!
   call assert_equal('eol:$,multispace:yYzZ,nbsp:S,leadmultispace:.-+*', &listchars)
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
-
+  call Check_listchars(expected, 6)
+  call Check_listchars(expected, 5, -1, 1)
+  call Check_listchars(expected, 5, -1, 2)
+  call Check_listchars(expected, 5, -1, 3)
+  call Check_listchars(expected, 5, -1, 6)
   call assert_equal(expected, split(execute("%list"), "\n"))
 
   " Test leadmultispace without multispace
@@ -223,16 +229,14 @@
 	      \ '+h>>>>>>>>>>$',
 	      \ '.-+*.-+*.-j>$',
 	      \ '.-+*0++0>>>>$',
-        \ '$',
+	      \ '$'
 	      \ ]
-
-  redraw!
   call assert_equal('eol:$,nbsp:S,leadmultispace:.-+*,space:+,trail:>,eol:$', &listchars)
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
-
+  call Check_listchars(expected, 6)
+  call Check_listchars(expected, 5, -1, 1)
+  call Check_listchars(expected, 5, -1, 2)
+  call Check_listchars(expected, 5, -1, 3)
+  call Check_listchars(expected, 5, -1, 6)
   call assert_equal(expected, split(execute("%list"), "\n"))
 
   " Test leadmultispace only
@@ -255,14 +259,10 @@
 	      \ ' h          ',
 	      \ '.-+*.-+*.-j ',
 	      \ '.-+*0  0    ',
-        \ ' ',
+	      \ ' '
 	      \ ]
-  redraw!
   call assert_equal('leadmultispace:.-+*', &listchars)
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, 12))
-  endfor
+  call Check_listchars(expected, 5, 12)
   call assert_equal(expected, split(execute("%list"), "\n"))
 
   " Test leadmultispace and lead and space
@@ -286,14 +286,14 @@
 	      \ '<h----------$',
 	      \ '.-+*.-+*.-j-$',
 	      \ '.-+*0--0----$',
-        \ '$',
+	      \ '$'
 	      \ ]
-  redraw!
   call assert_equal('eol:$,lead:<,space:-,leadmultispace:.-+*', &listchars)
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
+  call Check_listchars(expected, 6)
+  call Check_listchars(expected, 5, -1, 1)
+  call Check_listchars(expected, 5, -1, 2)
+  call Check_listchars(expected, 5, -1, 3)
+  call Check_listchars(expected, 5, -1, 6)
   call assert_equal(expected, split(execute("%list"), "\n"))
 
   " the last occurrence of 'multispace:' is used
@@ -307,15 +307,11 @@
 	      \ 'xhXyYXyYXyYX$',
 	      \ 'XyYXyYXyYXjx$',
 	      \ 'XyYX0Xy0XyYX$',
-        \ '$'
+	      \ '$'
 	      \ ]
-  redraw!
   call assert_equal('eol:$,multispace:yYzZ,space:x,multispace:XyY', &listchars)
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
-
+  call Check_listchars(expected, 6)
+  call Check_listchars(expected, 5, -1, 6)
   call assert_equal(expected, split(execute("%list"), "\n"))
 
   set listchars+=lead:>,trail:<
@@ -326,14 +322,10 @@
 	      \ '>h<<<<<<<<<<$',
 	      \ '>>>>>>>>>>j<$',
 	      \ '>>>>0Xy0<<<<$',
-        \ '$'
+	      \ '$'
 	      \ ]
-  redraw!
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
-
+  call Check_listchars(expected, 6)
+  call Check_listchars(expected, 5, -1, 6)
   call assert_equal(expected, split(execute("%list"), "\n"))
 
   " removing 'multispace:'
@@ -346,14 +338,10 @@
 	      \ '>h<<<<<<<<<<$',
 	      \ '>>>>>>>>>>j<$',
 	      \ '>>>>0xx0<<<<$',
-        \ '$'
+	      \ '$'
 	      \ ]
-  redraw!
-  for i in range(1, 5)
-    call cursor(i, 1)
-    call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
-  endfor
-
+  call Check_listchars(expected, 6)
+  call Check_listchars(expected, 5, -1, 6)
   call assert_equal(expected, split(execute("%list"), "\n"))
 
   " test nbsp
@@ -365,15 +353,10 @@
   call append(0, [ ">" .. nbsp .. "<" ])
 
   let expected = '>X< '
-
-  redraw!
-  call cursor(1, 1)
-  call assert_equal([expected], ScreenLines(1, virtcol('$')))
+  call Check_listchars([expected], 1)
 
   set listchars=nbsp:X
-  redraw!
-  call cursor(1, 1)
-  call assert_equal([expected], ScreenLines(1, virtcol('$')))
+  call Check_listchars([expected], 1)
 
   " test extends
   normal ggdG
@@ -383,16 +366,11 @@
   call append(0, [ repeat('A', &columns + 1) ])
 
   let expected = repeat('A', &columns)
-
-  redraw!
-  call cursor(1, 1)
-  call assert_equal([expected], ScreenLines(1, &columns))
+  call Check_listchars([expected], 1, &columns)
 
   set list
   let expected = expected[:-2] . 'Z'
-  redraw!
-  call cursor(1, 1)
-  call assert_equal([expected], ScreenLines(1, &columns))
+  call Check_listchars([expected], 1, &columns)
 
   enew!
   set listchars& ff&
@@ -411,19 +389,20 @@
   let nbsp = nr2char(0xa0)
   call append(0, ["        a\tb c" .. nbsp .. "d  "])
   let expected = ['≡≢≣≡≢≣≡≢a←↔↔↔↔↔→b␣c≠d≡≢⇔']
-  redraw!
-  call cursor(1, 1)
-  call assert_equal(expected, ScreenLines(1, virtcol('$')))
+  call Check_listchars(expected, 1)
+  call Check_listchars(expected, 1, -1, 3)
+  call Check_listchars(expected, 1, -1, 13)
 
   set listchars=eol:\\u21d4,space:\\u2423,multispace:≡\\u2262\\U00002263,nbsp:\\U00002260,tab:←↔\\u2192
-  redraw!
-  call assert_equal(expected, ScreenLines(1, virtcol('$')))
+  call Check_listchars(expected, 1)
+  call Check_listchars(expected, 1, -1, 3)
+  call Check_listchars(expected, 1, -1, 13)
 
   set listchars+=lead:⇨,trail:⇦
   let expected = ['⇨⇨⇨⇨⇨⇨⇨⇨a←↔↔↔↔↔→b␣c≠d⇦⇦⇔']
-  redraw!
-  call cursor(1, 1)
-  call assert_equal(expected, ScreenLines(1, virtcol('$')))
+  call Check_listchars(expected, 1)
+  call Check_listchars(expected, 1, -1, 3)
+  call Check_listchars(expected, 1, -1, 13)
 
   let &encoding=oldencoding
   enew!
@@ -515,9 +494,7 @@
   let expected = [
         \ "_ \u3099^I \u309A=" .. nbsp1 .. "\u0302=" .. nbsp2 .. "\u0302$"
         \ ]
-  redraw!
-  call cursor(1, 1)
-  call assert_equal(expected, ScreenLines(1, virtcol('$')))
+  call Check_listchars(expected, 1)
   let &encoding=oldencoding
   enew!
   set listchars& ff&
