在Vim中强调搜索但不替换?
我知道有可能阻止Vim在任何搜索中突出显示,但是有没有办法让它在常规搜索中突出显示,但不是替代?
我会经常突出显示一段文字,然后做一些事情:
:s/^/#/
评论整个区块。 但后来我在屏幕的左侧有一个丑陋的黄色条,我必须:noh
每次都清除它。
我想强调要保持常规/搜索。 这可能吗?
这并不能完全回答你的问题,但是对于我有同样的问题它有帮助:我添加了这个命令,以便在搜索或搜索替换之后轻松地停用突出显示
nnoremap <esc> :noh<return><esc>
(来自Vim clear last search highlighting)
我的解决方案:把它放在你的vimrc文件中
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>
它能做什么:
一些关于亮点的笔记从来没有很好解释过:
当'hlsearch'
选项打开时,所有未来的搜索/替代品都将打开"highlight visibility"
。 当前的"highlight visibility"
并不是真的可以直接查询或独立设置的选项,但您可以使用:nohlsearch
(这不同于:set nohlsearch
,因为下一次搜索将启用可见性再次)。
另外,每当你运行命令时:set hlsearch
有两个效果:它设置选项AND,它会让vim忘记,如果你输入过:nohlsearch
。 换句话说,改变'hlsearch'
(开或关)将强制当前的"highlight visibility"
在逻辑上匹配。