From f0be01a0024c6acece09d4cc73e18c3276defc8e Mon Sep 17 00:00:00 2001 From: Joshua Potter Date: Mon, 7 Nov 2016 14:27:14 -0800 Subject: [PATCH] Proper * and # commands plus count occurrences --- plugin/hightlight.vim | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/plugin/hightlight.vim b/plugin/hightlight.vim index fd214b1..fa936b7 100644 --- a/plugin/hightlight.vim +++ b/plugin/hightlight.vim @@ -77,6 +77,18 @@ function! s:ClearRegister(reg) endfunction +" FUNCTION: CountOccurrences() {{{1 +" ====================================================================== + +function! s:CountOccurrences(pattern) + if len(@/) > 0 + let pos = getpos('.') + exe ' %s/' . a:pattern . '//gne' + call setpos('.', pos) + endif +endfunction + + " FUNCTION: ActivateRegister(reg) {{{1 " ====================================================================== " We must actively set the search register to perform searches as expected. @@ -96,7 +108,7 @@ function! s:ActivateRegister(reg) endfunction -" FUNCTION: AppendToSearch(reg, pattern) {{{1 +" FUNCTION: AppendToSearch(reg, pattern, ...) {{{1 " ====================================================================== function! s:AppendToSearch(reg, pattern) @@ -114,24 +126,7 @@ function! s:AppendToSearch(reg, pattern) endif call s:ActivateRegister(a:reg) endif -endfunction - - -" FUNCTION: AppendToSearchForward(reg, pattern) {{{1 -" ====================================================================== - -function! s:AppendToSearchForward(reg, pattern) - call s:AppendToSearch(a:reg, a:pattern) - normal! * -endfunction - - -" FUNCTION: AppendToSearchBackward(reg, pattern) {{{1 -" ====================================================================== - -function! s:AppendToSearchBackward(reg, pattern) - call s:AppendToSearch(a:reg, a:pattern) - normal! # + call s:CountOccurrences(a:pattern) endfunction @@ -170,9 +165,9 @@ call s:AppendToSearch(v:register, @/) noremap HighlightRegistry_AppendToSearch \ :call AppendToSearch(v:register, '\<'.expand('').'\>') noremap HighlightRegistry_Forward_AppendToSearch - \ :call AppendToSearchForward(v:register, '\<'.expand('').'\>') + \ :call AppendToSearch(v:register, '\<'.expand('').'\>') noremap HighlightRegistry_Backward_AppendToSearch - \ :call AppendToSearchBackward(v:register, '\<'.expand('').'\>') + \ :call AppendToSearch(v:register, '\<'.expand('').'\>') noremap HighlightRegistry_RemoveFromSearch \ :call RemoveFromSearch(v:register, '\<'.expand('').'\>') noremap HighlightRegistry_ClearRegister @@ -182,8 +177,8 @@ noremap HighlightRegistry_ActivateRegister " Basic Mappings nmap & HighlightRegistry_AppendToSearch -nmap * HighlightRegistry_Forward_AppendToSearch -nmap # HighlightRegistry_Backward_AppendToSearch +nmap * :silent norm! *HighlightRegistry_Forward_AppendToSearch +nmap # :silent norm! #HighlightRegistry_Backward_AppendToSearch " Additional Register Modifiers nmap y& HighlightRegistry_ActivateRegister