如何在vim中突出显示光标下的单词。
目前,我是通过获取光标下的单词,然后按
*
键来实现的。当然,这确实会突出显示文本,但如果文件中存在同样的单词,则光标会移动到下一个找到的单词上。但是,我希望光标停留在同一个单词上,同时突出显示它。hlsearch
,根据您描述的*命令,我非常确定您已经打开了这个选项。您可以创建一个映射来设置搜索寄存器。nnoremap <leader>* :<C-u>let @/ = expand('<cword>')<cr>
使用映射后,您可以像其他搜索一样使用n/N跳转到下一个/上一个结果。
编辑:
由于您要求我描述映射正在做什么,我将其分解。
nnoremap
表示创建非递归映射。<leader>*
是映射的键序列。默认情况下,<leader>
为\,因此实际映射是\后跟*。您可以将其更改为任何您想要的内容,我只是用作示例。:<C-u>
在这种情况下可能没有用,但我发现这是一个好习惯。它的作用是保证不向即将运行的命令添加范围。let @/ =
正在设置/
(搜索)寄存器。当您进行普通搜索时,此处存储最后搜索的字符串。我们正在使用映射来操作它,以利用内置的hlsearch
和n/N功能。expand('<cword>')
正在获取光标下的单词。<cr>
只是模拟您按下Enter以完成命令。<leader> 1-6
来切换高亮显示最多6个单词,每个单词可以使用不同的颜色,<leader> -0
将清除所有高亮显示。请注意,保留HTML标签。
https://github.com/sk1418/myConf/blob/master/common/.vimrc#L729
原始想法来自sjl。
<leader>*
映射到这个命令,而不仅仅是普通的*
。 当光标停留在单词上时,请按\*
。 如果您想更改*
的默认行为,则从映射中删除<leader>
部分(尽管我不建议这样做!)。 - Randy Morris