加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何切换Vim的搜索突出显示而不使其禁用

发布时间:2020-12-15 18:54:16 所属栏目:安全 来源:网络整理
导读:我想要的是映射一个键,例如F4,所以按F4将切换搜索亮点的可见性,因此,无论当前的可见性如何,启动新的搜索都可以实现可见性. 我试过的 将F4映射到:nohlsearch暂时禁用高亮显示,而不关闭hlsearch设置,但不会再次切换显示. 将F4映射到:设置hlsearch!确实打开/
我想要的是映射一个键,例如F4,所以按F4将切换搜索亮点的可见性,因此,无论当前的可见性如何,启动新的搜索都可以实现可见性.

我试过的

>将F4映射到:nohlsearch暂时禁用高亮显示,而不关闭hlsearch设置,但不会再次切换显示.
>将F4映射到:设置hlsearch!确实打开/关闭,但我不想切换hlsearch设置,只是可见性设置.如果hlsearch关闭,那么它不会通过新的搜索自动回来.

似乎没有相反的形式:nohlsearch和命令本身有从函数调用的问题.

我发现了类似的问题,但他们没有提供答案.

更新:
第一个评论提供了我正在要求的内容,转载如下:

let hlstate=0
nnoremap <F4> :if (hlstate == 0) | nohlsearch | else | set hlsearch | endif | let hlstate=1-hlstate<cr>

(N.B.对于任何使用这种方式的人,将地图填充到一行而不是使用函数是必要的,因为您无法从函数内部的突出显示更改.)

相关问题略有不同的功能:http://stackoverflow.com/a/16750393/1176650

" 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>

现在只需按ctrl c来切换高亮.只有奇怪的是,您必须在搜索之后按两下才能切换高亮,因为搜索不会增加计数器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读