如何在vim中突出显示光标下的单词。
目前我通过获取光标下的单词然后按*
来完成此操作。
当然,这会突出显示文本,但光标会移动到文件中的下一个找到的单词(如果单词存在多次)。但是,我希望光标保持在同一个单词上,同时突出显示它。
答案 0 :(得分:2)
你可以试试Mark plugin,因为它可以同时突出显示不同颜色的几个单词。它非常稳定,文档齐全,易于使用。
可以直接或通过正则表达式选择要突出显示的单词,插件提供了一些在标记的单词/表达式的出现之间跳转的机制。
答案 1 :(得分:2)
假设你有hlsearch
- 给出你对 * 命令的描述,我很确定你这样做 - 你可以创建一个设置搜索寄存器的映射: / p>
nnoremap <leader>* :<C-u>let @/ = expand('<cword>')<cr>
使用映射后,您可以像其他任何搜索一样使用 n / N 跳转到下一个/上一个结果。
编辑:
由于您要我描述映射正在做什么,我会将其分解。
nnoremap
表示要创建非递归映射。<leader>*
是映射的关键序列。默认情况下,<leader>
为 \ ,因此实际映射为 \ ,后跟 * 。您可以将其更改为您想要的任何内容,我只是将其用作示例。:<C-u>
在这种情况下可能没用,但我发现这是一个好习惯。它的作用是保证您将要运行的命令没有添加范围。let @/ =
正在设置/
(搜索)注册表。这是您进行常规搜索时存储最后搜索的字符串的位置。我们使用映射来操纵它,以利用内置的hlsearch
和 n / N 功能。expand('<cword>')
抓住光标下的字词。<cr>
只是模拟你按 Enter 来实际完成命令。答案 2 :(得分:1)
我添加了此功能,它允许您按<leader> 1-6
切换不同颜色的最多6个单词的突出显示,<leader> -0
将清除所有突出显示。
https://github.com/sk1418/myConf/blob/master/common/.vimrc#L729
最初的想法是来自sjl。
答案 3 :(得分:0)
我在 .vimrc 中这样做了,它使用 F3 突出显示光标下的单词:
nmap <F3> /<c-r>=expand("<cword>")<CR><CR>N
'N' 会回到最后一个位置