Ein*_*Ein 20 vim search highlighting highlight
我想是绘制一个关键,例如F4,以便按F4将切换搜索亮点的知名度,并让开始新的搜索能够知名度,无论现在的知名度.
我尝试过的:
:nohlsearch不关闭hlsearch设置的情况下暂时禁用高亮显示,但不会再次切换可见性.:set hlsearch!打开/关闭,但我不想切换hlsearch设置,只是切换可见性设置.如果hlsearch关闭则不会自动返回新搜索.似乎没有相反的形式,:nohlsearch并且命令本身在从函数调用时存在问题.
我发现了类似的问题,但他们没有提供答案.
更新:
第一条评论提供了我要求的内容,转载如下:
let hlstate=0
nnoremap <F4> :if (hlstate == 0) \| nohlsearch \| else \| set hlsearch \| endif \| let hlstate=1-hlstate<cr>
Run Code Online (Sandbox Code Playgroud)
(对于任何使用此功能的人来说都是这样的 - 将地图填充到一行而不是使用功能是必要的,因为您无法对功能内部的突出显示进行更改.)
相关问题略有不同的功能:https: //stackoverflow.com/a/16750393/1176650
Chr*_*ndt 15
注意,最近的Vims(7.4.79)有v:hlsearch可用的变量.这意味着您可以改进映射到:
:nnoremap <silent><expr> <Leader>h (&hls && v:hlsearch ? ':nohls' : ':set hls')."\n"
Run Code Online (Sandbox Code Playgroud)
tru*_*ktr 13
" ctrl+c to toggle highlight.
let hlstate=0
nnoremap <c-c> :if (hlstate%2 == 0) \| nohlsearch \| else \| set hlsearch \| endif \| let hlstate=hlstate+1<cr>
Run Code Online (Sandbox Code Playgroud)
现在只需按ctrl + c切换高亮显示.只有怪癖是你必须在搜索之后按两次才能切换高亮显示,因为搜索不会增加计数器.
我想要的是映射一个键,例如F4,以便按下F4将切换搜索突出显示的可见性,以便无论当前可见性如何,启动新搜索都可以实现可见性.
刚试过这个,似乎就是这样做的:
" switch higlight no matter the previous state
nmap <F4> :set hls! <cr>
" hit '/' highlights then enter search mode
nnoremap / :set hlsearch<cr>/
Run Code Online (Sandbox Code Playgroud)
从突出显示所有搜索模式匹配中,我们可以映射一个键来切换突出显示状态。与 trusktr 的答案不同,这里我们使用变量来存储状态。
“如果您希望能够快速启用/禁用突出显示,您可以映射一个键来切换 hlsearch 选项”:
" Press F4 to toggle highlighting on/off, and show current value.
:noremap <F4> :set hlsearch! hlsearch?<CR>
Run Code Online (Sandbox Code Playgroud)
“或者,按回车键暂时退出突出显示的搜索”:
:nnoremap <CR> :nohlsearch<CR><CR>
Run Code Online (Sandbox Code Playgroud)