Vim用*突出显示一个单词而不移动光标

时间:2014-05-16 13:04:23

标签: vim cursor highlight

我希望能够突出显示光标下的单词,而不会转到下一个结果。

我找到的解决方案使用了一个标记:

noremap * mP*N`P 

有没有更好的解决方案?

我注意到vim在执行命令后保持光标位置并不是很好。例如,当我切换缓冲区时,光标会返回到行的开头。

我可能会对此有一个全球性的设置。

3 个答案:

答案 0 :(得分:12)

遗憾的是,没有全球性的设定。

“突出而不动”问题的一个常见解决方案是:

nnoremap * *``

“切换缓冲区时保持光标位置”问题的一个解决方案是:

augroup CursorPosition
  autocmd!
  autocmd BufLeave * let b:winview = winsaveview()
  autocmd BufEnter * if(exists('b:winview')) | call winrestview(b:winview) | endif
augroup END

答案 1 :(得分:6)

详细here,您可以按如下方式定义地图:

:nnoremap <F8> :let @/='\<<C-R>=expand("<cword>")<CR>\>'<CR>:set hls<CR>

答案 2 :(得分:2)

我的SearchHighlighting plugin更改了*命令,因此它不会跳转到下一个匹配项;您仍然可以通过提供[count]来跳转。它还将该命令扩展到可视模式(另一个经常请求的功能不在Vim中),还有一些。