/console.log
之类的单词时,console.log
的所有实例都会突出显示。我当前的消除突出显示的策略是执行类似/asntehua
的操作。是否有适当的方法来删除突出显示的单词?#1 楼
作为:noh
的替代方法,我喜欢将:let @/=""
映射到键盘快捷键。不同之处在于
:noh
将搜索项保留在搜索寄存器中,因此正常模式下的n
和N
通过跳转到下一个/上一个比赛并重新突出显示。另一方面,使用
:let @/=""
会导致出现消息E25: No previous regular expression
并将光标留在原处,如果您不知道ctrl
,这特别方便- o
仍然不小心击中了n
。也可以用其他方式使用。要使vim突出显示某些文本而不跳转到文本,可以
:let @/="some text"
在这些表达式中,@可以引用一个寄存器,@ /是保存最后一个搜索模式的寄存器。 >
#2 楼
只需键入:noh<cr>
(其中
<cr>
表示回车,即Enter)。此命令的完整非缩写形式是:nohlsearch
。 >为方便起见,您可以在.vimrc
中添加一个映射,例如nnoremap <Leader><space> :noh<cr>
。由于我的领导者是太空人,因此我只需轻按两次空格即可清除突出显示。 (默认情况下,
<Leader>
设置为\
)另一个受欢迎的选择是将其绑定到Ctrl + L,因为这或多或少是“重绘终端屏幕”的默认设置,这大致是什么您正在执行的操作:
nnoremap <silent> <C-L> :nohlsearch<CR><C-L>
这也具有重新绘制终端屏幕的副作用,如果终端连接速度很慢,这可能会很慢(这种情况很少这些天)。
注意:如果您正在使用tpope / vim-sensible,那么它已经提供了上面列出的
<C-l>
映射。#3 楼
永久禁用搜索突出显示使用/
:set nohlsearch
搜索时,匹配项不会突出显示搜索:noh
或
:nohlsearch
(清除直到按下n或N或执行新的搜索)清除高亮按ESC
nnoremap <esc> :noh<return><esc>
按下另一个键或自定义地图时清除高亮显示
按\(反斜杠)时清除亮点
nnoremap \ :noh<return>
按两次ESC清除亮点
nnoremap <esc><esc> :noh<return>
评论
我在我的vimrc中添加了nnoremap
–mbigras
17 Mar 2 '17 at 2:38
到底是怎么回事?也许您禁用了ESC键?
– Shehryar
17年2月40日标记为2'
按jk不会关闭突出显示的文本(但仍可以用作Esc)。按下键盘左上方的我的Esc键不会关闭突出显示的文本。
–mbigras
17 Mar 2 '17在2:43
因此,您可以在那里找到答案。将您的jk地图放在ESC地图下方,并确保您使用的是简单地图而不是noremap
– Sheharyar
17 Mar 2 '17 at 2:46
重新映射转义符可能会导致箭头键出现问题,并且我假设其他情况下也会使用转义符。 vi.stackexchange.com/questions/11144/…
–罗布·莫舍(Rob Mosher)
19年8月20日在16:15
#4 楼
在〜/ vimrc中尝试了一些针对此快捷方式的建议解决方案后,我决定简单地在其中添加nmap <esc><esc> :noh<return>
。双逃逸防止干扰箭头键的功能。如果您处于插入模式,则必须进行三次转义。这是快速执行且易于记住的方法。#5 楼
我在.vimrc中添加了一个autocmd,以便在您进入插入模式时立即删除突出显示的内容。 autocmd InsertEnter * :let @/=""
评论
使用nohl而不是let @ / =“”将是更好的方法,因为那样您就不会破坏当前的搜索了。
–詹姆斯
18-09-19在23:57
@jamessan可以与:let @ / =“”命令一起使用,但是autocmd InsertEnter *:noh出于某种原因不起作用,知道为什么吗?
– tobek
19年5月17日在22:54
实际上,我找到了原因:根据文档“无法在自动命令中使用“:nohlsearch”关闭搜索突出显示“-原因详细信息:vimdoc.sourceforge.net/htmldoc/autocmd.html#autocmd-searchpat
– tobek
19年5月17日在23:01
#6 楼
/asdfasdf
它的优点是您不必输入准确的内容。缺点是,在4096字节的文件中大约有1:68719476736的机会不起作用,并且光标会跳到另一个位置。对于较大的文件,此机会增加。
评论
欢迎使用vi SE!我认为字符串asdfasdf是特殊的,因为它在实际文件中比随机选择的8字节序列经常发生。因此,机会要高得多。 :-)
–peterh-恢复莫妮卡
19年8月19日在22:32
#7 楼
如果您不想在搜索后不突出显示,可以使用以下命令(更好)::set nohls
或以下命令(更糟): >
:hi Search NONE
#8 楼
键入:help incsearch
时,我在手册中发现了以下内容:augroup vimrc-incsearch-highlight
autocmd!
autocmd CmdlineEnter /,\? :set hlsearch
autocmd CmdlineLeave /,\? :set nohlsearch
augroup END
我辞职使用,因为我尝试过的其他解决方案都不是完美的,因此该解决方案“直指马口” 。它突出显示当前窗口中的所有搜索匹配项。搜索时,可以使用
CTRL-G
和CTRL-T
键移动到下一个和上一个匹配项。#9 楼
我不认为完全删除hls并不是一件好事,如何轻松启用或禁用创建简单快捷方式(布尔值)对我来说->
" to reselect use gv in normal mode
nnoremap <S-F11> <ESC>:set hls!<cr>
inoremap <S-F11> <C-o>:set hls!<cr>
vnoremap <S-F11> <ESC>:set hls!<cr> <bar> gv
魔术的出现是由于设置结尾处的“
!
” #10 楼
我发现很少要突出显示对我来说是很少见的,当我需要突出显示时只是短暂的一刻。我的解决方法是nnoremap <Leader>/ set hls!<CR>
这样可以在按
\/
时突出显示,如果再次按则禁用它。在极少数情况下,您可以在需要时轻松访问突出显示。
评论
没有比/ skldafjlksjdf更快的键入了))将以下内容添加到您的.vimrc中::nnoremap