Test for v:hlsearch vim: set ft=vim : STARTTEST :" Last abc: Q :so small.vim :new :call setline(1, repeat(['aaa'], 10)) :set hlsearch nolazyredraw :let r=[] :command -nargs=0 -bar AddR :call add(r, [screenattr(1, 1), v:hlsearch]) /aaa :AddR :nohlsearch :AddR :let v:hlsearch=1 :AddR :let v:hlsearch=0 :AddR :set hlsearch :AddR :let v:hlsearch=0 :AddR n:AddR :let v:hlsearch=0 :AddR / :AddR :let r1=r[0][0] :" I guess it is not guaranteed that screenattr outputs always the same character :call map(r, 'v:val[1].":".(v:val[0]==r1?"highlighted":"not highlighted")') :try : let v:hlsearch=[] :catch : call add(r, matchstr(v:exception,'^Vim(let):E\d\+:')) :endtry :bwipeout! :$put=r :call garbagecollect(1) :" :/^start:/,$wq! test.out :" vim: et ts=4 isk-=\: :call getchar() ENDTEST start: