我尝试突出显示光标所在的搜索结果之一,然后
与我写的正则表达式matchadd
,\%#
,@/
。
但我对此一无所知。
以下是替代使用。
这就是我要实现的。
以下内容将以中定义的突出显示组突出显示当前的搜索结果s:hl_group
。只要您按n
或,它就会更新N
。它还定义了一个命令HlClear
,一旦您完成了突出显示,就可以清除突出显示的内容。这可以称为:HlClear
。
" Set this to a group from :help highlight-default
let s:hl_group = 'ErrorMsg'
function! s:HlNext()
call s:HlClear()
let param = getreg('/')
let s:next_match = matchadd(s:hl_group, '\%#'.param)
redraw
endfunction
function! s:HlMatch()
let cmd_type = getcmdtype()
if cmd_type == '/' || cmd_type == '?'
return "\<cr>:call ".s:SID()."HlNext()\<cr>"
endif
return "\<cr>"
endfunction
function! s:HlClear()
silent! call matchdelete(s:next_match)
endfunction
function! s:SID()
return matchstr(expand('<sfile>'), '<SNR>\d\+_\zeSID$')
endfun
nnoremap <silent> n n:call <sid>HlNext()<enter>
nnoremap <silent> N N:call <sid>HlNext()<enter>
cnoremap <silent> <expr> <enter> <sid>HlMatch()
command HlClear :call <sid>HlClear()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句