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

Bog*_*iev 5 vim

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

如何让 star 命令保持当前状态?

如果这是不可能的,我怎么能绑定另一个键来做到这一点?

gar*_*ohn 6

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

:nnoremap * *``
Run Code Online (Sandbox Code Playgroud)

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

:nnoremap * *N
Run Code Online (Sandbox Code Playgroud)

但这会将光标移动到单词的开头。这两种解决方案都有一个缺点,如果下一场比赛在屏幕外,您的屏幕可能会滚动。这可以通过一个函数来解决——它只取决于你想要的行为以及你想要投入多少工作。

编辑:

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

:nmap <silent> * :let @/='\<'.expand('<cword>').'\>'<CR>
Run Code Online (Sandbox Code Playgroud)