Highlight searches in Vim but not substitutions?
我知道有可能阻止vim在任何搜索中突出显示,但是有没有一种方法可以让它在常规搜索中突出显示,但不能例如替换?
我通常会突出显示一块文本,然后执行如下操作:
对整个街区进行评论。但是我的屏幕左侧有一个丑陋的黄色条,我每次都要清除它。
我希望突出显示保留在常规/搜索中。这有可能吗?
- 不确定这样的功能是否有效,但也许可以将"搜索"突出显示组更改为普通文本,然后以某种方式将"/"搜索键重新映射为":匹配newsearchgroup/searchterm/"。不过,我也想听听更好的方法。
- 这并不能回答您的问题,但您应该使用tcomment(或类似的注释插件)来注释文本块。您将能够使用动作进行注释,并且可以轻松地注释任何内容,包括XML。
- 也许你可以用这个答案来指出正确的方向…
这并不能完全回答您的问题,但对于我来说,有一个相同的问题是有帮助的:我添加了这个命令,以便在搜索或搜索并替换后轻松取消突出显示。
1
| nnoremap <esc> :noh<return><esc> |
(从VIM清除上次搜索突出显示)
我的解决方案:把这个放在你的VIMRC文件中
1 2 3 4 5 6 7 8 9
| set nohlsearch
noremap * :set hlsearch<CR>:nohlsearch<CR>*
noremap / :set hlsearch<CR>:nohlsearch<CR>/
noremap ? :set hlsearch<CR>:nohlsearch<CR>?
nnoremap <F4> :set invhlsearch<CR>
inoremap <F4> <ESC>:set invhlsearch<CR>gi
nnoremap <CR> :set nohlsearch<CR> |
它做什么:
搜索始终启用突出显示。
使用enter关闭突出显示,直到下一次搜索,但不是下一次替换。但是,再次按下enter将不会重新打开它们。
使用f4关闭突出显示,直到下一次搜索,但不是下一次替换。再次按f4将切换上一个搜索模式(搜索或替换)的突出显示(如果有)。
一些关于突出部分的注释没有很好地解释:当'hlsearch'选项打开时,所有未来的搜索/替换将打开"highlight visibility"。当前的"highlight visibility"实际上不是一个可以直接查询或独立设置的选项,但是可以使用命令:nohlsearch独立关闭突出显示可见性(这与:set nohlsearch不同,因为下一次搜索将再次启用可见性)。
此外,每当运行命令:set hlsearch时,有两种效果:它设置选项,如果您键入:nohlsearch的话,它会使vim忘记。换句话说,更改'hlsearch'(开或关)将强制当前"highlight visibility"逻辑匹配。
- 谢谢你!你关于:set hlsearch的笔记帮助我解决了如何在映射过程中去掉突出显示,并在没有任何副作用(如匹配闪烁或错误消息)的情况下重新启用它。