forked from aniani/vim
Problem: Value of v:hlsearch reflects an internal variable.
Solution: Make the value reflect whether search highlighting is actually
displayed. (Christian Brabandt)
49 lines
815 B
Plaintext
49 lines
815 B
Plaintext
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
|
|
:set nohls
|
|
/
|
|
: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:
|