微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我想要的是映射一个键,例如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来切换高亮.只有奇怪的是,您必须在搜索之后按两下才能切换高亮,因为搜索不会增加计数器.

原文地址:https://www.jb51.cc/vim/386713.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐