我希望能够在不跳转到下一个结果的情况下突出显示光标下的单词。
我找到的解决方案使用了一个标记:
noremap * mP*N`P
有更好的解决方案吗?
我注意到vim在执行命令后无法保持光标位置,例如,当我切换缓冲区时,光标会回到行的开头。
也许可以设置一个全局选项来解决这个问题。
我希望能够在不跳转到下一个结果的情况下突出显示光标下的单词。
我找到的解决方案使用了一个标记:
noremap * mP*N`P
有更好的解决方案吗?
我注意到vim在执行命令后无法保持光标位置,例如,当我切换缓冲区时,光标会回到行的开头。
也许可以设置一个全局选项来解决这个问题。
很遗憾,这方面没有全局设置。
解决“不移动但突出显示”的常见方法是:
nnoremap * *``
解决“在切换缓冲区时保留光标位置”的方法之一是:
augroup CursorPosition
autocmd!
autocmd BufLeave * let b:winview = winsaveview()
autocmd BufEnter * if(exists('b:winview')) | call winrestview(b:winview) | endif
augroup END
如此处所述,您可以按以下方式定义映射:
:nnoremap <F8> :let @/='\<<C-R>=expand("<cword>")<CR>\>'<CR>:set hls<CR>
nnoremap * :let @/ = '\<'.expand('<cword>').'\>'\|set hlsearch<C-M>
- Llopeth我的SearchHighlighting插件修改了*
命令的行为,使其不会跳转到下一个匹配项;您仍然可以通过提供[count]
来跳转。它还将该命令扩展到可视模式(这是Vim中另一个经常请求但不支持的功能),以及其他一些功能。