And*_*ood 15 search vim highlighting
使用 Vim 时,我有时会发现自己盯着一段源代码看了一会儿,突然想在屏幕上弹出一些变量。这很简单:/<var>突出显示所有这些。我的问题是搜索经常移动我的窗口,所以我不是从同一个地方查看源代码。即使它只移动了几行,它仍然让我失望,因为我需要花几秒钟才能弄清楚事情已经转移到了哪里。
是否可以在不将光标移动到下一个匹配项的情况下突出显示搜索词?
Chr*_*sen 15
skyblue 的回答显示了如何使用普通搜索突出显示来完成您想要的想法的核心。
我通过制作一个与*command类似的键绑定来扩展该技术,但实际上并没有移动到下一个匹配项。
我要感谢garyjohn指出expand()等效于*的单词选择(以避免使用*自身并恢复视图)。这充分简化了代码,使其可以直接进入映射(避免使用函数)。我还添加了一个匹配部分单词(如g*)的映射 。
:" The leader defaults to backslash, so (by default) this
:" maps \* and \g* (see :help Leader).
:" These work like * and g*, but do not move the cursor and always set hls.
:map <Leader>* :let @/ = '\<'.expand('<cword>').'\>'\|set hlsearch<C-M>
:map <Leader>g* :let @/ = expand('<cword>')\|set hlsearch<C-M>
Run Code Online (Sandbox Code Playgroud)
小智 13
您还可以将搜索寄存器设置为要匹配的变量。
首先,确保打开了搜索突出显示:
:set hlsearch
Run Code Online (Sandbox Code Playgroud)
然后,您可以设置搜索寄存器:
:let @/="variable"
Run Code Online (Sandbox Code Playgroud)
这将突出显示所有出现的变量,而不会跳转到下一个匹配项。
有关更多信息,请参阅 :help @/
一种方法是使用:match命令,例如,
:match Question '^R^W'
Run Code Online (Sandbox Code Playgroud)
这将使用问题突出显示组突出显示光标下的单词。我经常使用问题组,因为在我的终端上它是一个漂亮的绿色。要查看可用的高亮组,请执行
:hi
Run Code Online (Sandbox Code Playgroud)
的^R和^W是按Ctrl-R和Ctrl-W,分别和由光标下的单词被替换。看
:help c_CTRL-R_CTRL-W
Run Code Online (Sandbox Code Playgroud)
有关更多信息。看
:help :match
Run Code Online (Sandbox Code Playgroud)
有关:match命令的更多信息。要清除突出显示,只需执行
:match
Run Code Online (Sandbox Code Playgroud)
没有任何争论。
http://vim.wikia.com/wiki/VimTip1572
如果您使用过此插件,则只需启用该功能即可
\米
然后使用数字键盘键为该单词的所有位置指定颜色,而无需移动光标。
1
如果您愿意,您可以同时对许多不同的单词或更复杂的搜索模式使用许多不同的突出显示。