Vim:使星号“*”命令停留在当前单词上

Vim:使星号“*”命令停留在当前单词上

在大多数用例中,我使用 * 命令只是为了突出显示源代码中的当前单词,以确保它被正确输入。

我怎样才能让星号命令停留在当前单词上?

如果不可能的话,我该如何绑定另一个键来实现这一点?

答案1

我认为最简单的解决方案就是这种映射:

:nnoremap * *``

最后两个字符是两个反引号,用于将光标恢复到原始位置。另一种解决方案是

:nnoremap * *N

但这会将光标移动到单词的开头。这两种解决方案的缺点是,如果下一个匹配项不在屏幕上,您的屏幕可能会滚动。这可以通过函数来​​解决——这取决于您想要的行为以及您想要投入多少工作。

编辑:

刚想到另一个根本不移动光标的简单方法。

:nmap <silent> * :let @/='\<'.expand('<cword>').'\>'<CR>

答案2

快速破解:

:nnoremap * *N

这将在使用 搜索光标下的单词后执行向后搜索*

相关内容