我发现的最简单的解决方案是使用 wb
,它适用于光标所在的任何单词,包括单个字符和多个字符的单词。
来源于Reddit用户'happysri'在这个帖子中:https://www.reddit.com/r/vim/comments/1xzfjy/go_to_start_of_current_word_if_not_already_there/
lb
在所有情况下都能完美运作。 - undefinedlb
在至少一个情况下会失败,很快就会想到:只有一个字长的单词行。如果这恰好是文件的最后一行,那么这两种方法都会失败。 - undefined我找到了这个答案在Vim中将光标移动到当前单词的末尾, 它与我的问题有些相似...
应用那里展示的思路,我应该始终向前移动一个字符l,然后使用b在单词开头移动。这有效,并且对于不同大小的单词是一致的。
wb
可以避免双重执行或单个字符单词的问题。 - Moustachelb
在我的端上运行得非常完美,即使是单个字母的单词,甚至连续使用 lblb
时,光标都能正确地返回到单词 "1"(就像 wbwb
和 bwbw
一样)。 - undefined:call search('\<', 'bc')
\<
匹配单词的开头b
代表向后查找c
是为了接受光标下的匹配项
"_yiw
- user938271