diff --git a/autoload/highlight.vim b/autoload/highlight.vim index 33eb6fe..6e12654 100644 --- a/autoload/highlight.vim +++ b/autoload/highlight.vim @@ -73,6 +73,21 @@ function! highlight#clear_register(reg) endfunction +" FUNCTION: ClearAllRegisters() {{{1 +" ====================================================================== + +function! highlight#clear_all_registers() + for key in keys(g:highlight_registry) + call highlight#init_register(key, g:highlight_registry[key]) + endfor + for key in keys(s:registry) + if !has_key(g:highlight_registry, key) + call highlight#clear_register(key) + endif + endfor +endfunction + + " FUNCTION: CountLastSeen() {{{1 " ====================================================================== diff --git a/plugin/hightlight.vim b/plugin/hightlight.vim index dea9ef5..0fdb26f 100644 --- a/plugin/hightlight.vim +++ b/plugin/hightlight.vim @@ -87,11 +87,18 @@ vmap * &nHRegistry_CountLastSeen vmap # &NHRegistry_CountLastSeen +" PROCEDURE: Commands {{1 +" ====================================================================== + +function! s:ClearHighlightRegistry() + call highlight#clear_all_registers() +endfunction +command ClearHighlightRegistry :call ClearHighlightRegistry() + + " PROCEDURE: Initialize {{{1 " ====================================================================== -for key in keys(g:highlight_registry) - call highlight#init_register(key, g:highlight_registry[key]) -endfor +call s:ClearHighlightRegistry() call highlight#append_to_search(v:register, @/)