在Vim中搜索并替换后取消选择匹配字符串

在Vim中搜索并替换后取消选择匹配字符串,vim,Vim,我有一个文件(LaTeX),其中包含我希望注释掉的行。 我在视觉上选择相关块后使用的正则表达式是:s/^/%/g,这很好。但是,vim然后高亮显示替换中使用的正则表达式第一部分的每个匹配匹配项(高亮显示每行开头的第一个字符) 如果我进行另一次搜索,或者进行另一次搜索并替换,则选择会发生变化,但如果不进行“无用”搜索,我无法确定如何关闭它 如果我搜索空白,那就特别烦人(因为在文本文件中突出显示每个“”在视觉上很烦人) 搜索和替换完成后,如何取消选择匹配字符串?:nohlsearch将从当前搜索中删

我有一个文件(LaTeX),其中包含我希望注释掉的行。
我在视觉上选择相关块后使用的正则表达式是
:s/^/%/g
,这很好。但是,vim然后高亮显示替换中使用的正则表达式第一部分的每个匹配匹配项(高亮显示每行开头的第一个字符)

如果我进行另一次搜索,或者进行另一次搜索并替换,则选择会发生变化,但如果不进行“无用”搜索,我无法确定如何关闭它

如果我搜索空白,那就特别烦人(因为在文本文件中突出显示每个“
”在视觉上很烦人)


搜索和替换完成后,如何取消选择匹配字符串?

:nohlsearch
将从当前搜索中删除突出显示。高亮显示将在下次搜索时返回

:set nohlsearch
将禁用当前vim会话的突出显示


如果要完全禁用高亮显示,请添加
:将nohlsearch设置为
。vimrc
:nohlsearch
将停止高亮显示,但保留为活动搜索模式。(它将开始在
n
等上突出显示)

:让@/=”
清除搜索模式寄存器(这样
n
等将不起作用)


我在Vim中看到的一个常见现象是
map:noh
;其结果是(假定默认的前导字符为反斜杠)\Space将停止突出显示当前匹配项。

只需搜索不在页面上的字符串:

/poop 

将其添加到vimrc中,完成后-按InMyCase+enter停止突出显示

     map <silent> <leader><cr> :noh<cr>
map:noh

强调
:nohlsearch
:set nohlsearch
之间的区别可能是值得的。。。不太注意很容易。可能值得注意的是,如果您决定使用键映射,您可能希望将映射设置为切换高亮显示(使用
:set hlsearch!
),而不是简单地禁用它。@TimPote:映射通常使用
:noh
,而不是
“nohls”
。因此,一旦您搜索新内容,它将再次开始突出显示。您还可以执行
V:norm I%
进行注释,以及
V:norm^x
取消注释而不突出显示任何内容。此外,命令末尾的
g
标志用于对同一行中的所有实例执行替换。既然你只做一次替换,那就没用了。这是最容易回答的问题。但在实践中,@ChrisMorgan的答案要简单得多,如果你说的是每个编辑会话中的数十次搜索,是的,这确实回答了这个问题。我已经使用这个解决方案很多年了,因为它很容易记住,而且很有效。我也是这么做的。只是来看看vim中是否有内置的东西。。