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