我尝试过:
1. 将F4映射到
:nohlsearch
可以暂时禁用高亮可见性,而不关闭hlsearch
设置,但它不能切换可见性。
2. 将F4映射到:set hlsearch!
会切换开/关,但我不想切换hlsearch
设置,只想切换可见性设置。如果hlsearch
关闭,则不会自动返回到新的搜索中。似乎没有
:nohlsearch
的相反形式,而且从函数调用该命令本身存在问题。我找到了类似的问题,但它们没有提供答案。
更新: 第一个评论提供了我要求的内容,如下所示:
let hlstate=0
nnoremap <F4> :if (hlstate == 0) \| nohlsearch \| else \| set hlsearch \| endif \| let hlstate=1-hlstate<cr>
(注意:对于任何使用此功能的人来说,将地图压缩成一行而不是使用函数是必要的,因为您无法从函数内部影响高亮显示的更改。)与稍有不同功能相关的问题:https://dev59.com/Tm7Xa4cB1Zd3GeqPp3AW#16750393
ctrl+c
切换高亮。”,第二行:“let hlstate=0
”,第三行:“nnoremap <c-c> :if (hlstate%2 == 0) \| nohlsearch \| else \| set hlsearch \| endif \| let hlstate=hlstate+1<cr>
。现在只需按ctrl+c
即可切换高亮。 - trusktr