Problem: Value of v:hlsearch reflects an internal variable.
Solution: Make the value reflect whether search highlighting is actually
displayed. (Christian Brabandt)
Read-only in the |sandbox|. |fold-foldtext|
*v:hlsearch* *hlsearch-variable*
-v:hlsearch Variable that determines whether search highlighting is on.
- Makes sense only if 'hlsearch' is enabled which requires
- |+extra_search|. Setting this variable to zero acts the like
- |:nohlsearch| command, setting it to one acts like >
+v:hlsearch Variable that indicates whether search highlighting is on.
+ Setting it makes sense only if 'hlsearch' is enabled which
+ requires |+extra_search|. Setting this variable to zero acts
+ the like |:nohlsearch| command, setting it to one acts like >
let &hlsearch = &hlsearch
<
*v:insertmode* *insertmode-variable*
: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")')
1:highlighted
0:not highlighted
1:highlighted
+0:not highlighted
Vim(let):E706:
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 537,
/**/
536,
/**/
#ifndef FEAT_VIRTUALEDIT
# define getvvcol(w, p, s, c, e) getvcol(w, p, s, c, e)
-# define virtual_active() 0
+# define virtual_active() FALSE
# define virtual_op FALSE
#endif
#define AUTOLOAD_CHAR '#'
#ifdef FEAT_EVAL
-# define SET_NO_HLSEARCH(flag) no_hlsearch = (flag); set_vim_var_nr(VV_HLSEARCH, !no_hlsearch)
+# define SET_NO_HLSEARCH(flag) no_hlsearch = (flag); set_vim_var_nr(VV_HLSEARCH, !no_hlsearch && p_hls)
#else
# define SET_NO_HLSEARCH(flag) no_hlsearch = (flag)
#endif