是否有一个 Vim 运动命令可以将光标置于当前单词的开头?

Pab*_*gos 5 vi vim neovim

假设我的光标位于下一张图片所示的位置

光标悬停在文本上

在正常模式下按下,b我可以转到单词的开头。

在此输入图像描述

伟大的!

如果我将光标移动到1就像

在此输入图像描述

并按b我们有

在此输入图像描述

问题:

是否有一个运动命令将光标移动到单词的开头,以便如果单词是一个字符长,则保留在初始位置?在我的示例中,光标应保持在1

我正在寻找这个运动命令来实现一个宏,在某些步骤中将光标移动到单词的开头,单词有时只有一个字符。

Mou*_*che 13

我为此找到的最简单的解决方案就是只要wb光标位于单词上,并且适用于单字符和多字符单词,它就可以工作。

来源是此线程中的 reddit 用户“happysri”:https://www.reddit.com/r/vim/comments/1xzfjy/go_to_start_of_current_word_if_not_already_there/

  • 寻找问题的快速解决方案并引用我自己 8 年前的 Reddit 评论找到答案,这真是超现实:D (3认同)

Zor*_*rzi 1

我不相信有这样的动议(如果我错了,请大家纠正我)

但你可以通过搜索来实现这一点:

:call search('\<', 'bc')
Run Code Online (Sandbox Code Playgroud)
  • \<匹配单词的开头

  • 代表b向后
  • c接受光标下的匹配