在Vim中,我想回到上一个单词。与 `w` 相反。

257

当你使用vim时,你可以使用w逐个单词向前移动。我如何向后移动?

你可以使用b命令来向后移动单词。


9
这是一个易于理解的图形化格式,包含了许多vim键位。如果你经常使用vim,我强烈建议你打印出来并放在电脑旁边。 - Sam Brinck
可能是如何在vi编辑器中向左移动一个单词的重复问题。 - Arslan Ali
1
另请参见:https://dev59.com/JG435IYBdhLWcg3w7k6b,如果您有兴趣向后移动到上一个单词的末尾 - 使用ge和gE。 - arcseldon
4个回答

339

使用b可以回退一个单词。

你还可以尝试使用WB来前进或回退一个WORD(根据:h WORD的描述,这是由一系列非空白字符组成,用空格分隔)。


60
为了完整起见,ge将向后移动到单词的末尾。gE将向后移动到WORD的末尾。 - Peter Rincker
5
@Peter Rincker: eE会向前移动。 - Benoit
3
b和B的区别是什么?w和W呢?它们的行为看起来相同。 - Casey Patton
1
@CaseyPatton:大写版本将任何非空白序列视为单词;小写类似于\w|\S。有关更多详细信息,请参见:help word:help WORD - rninty
值得考虑的是使用ge和gE向后移动到前一个单词的末尾。另外,参见https://dev59.com/JG435IYBdhLWcg3w7k6b。 - arcseldon
1
ge is the correct answer here, not b or W or B - untore

107

我认为可以这样理解:

b 移动到当前或前一个单词的开头

w 移动到下一个单词的开头

e 移动到当前或下一个单词的结尾

ge 移动到前一个单词的结尾

尝试使用 :h word-motions 了解更多详情以及如何将它们与操作结合使用。


9

如果你使用 w, b, W, 和 B 来跳过单词来导航行,那么请考虑以下的替代方法,如果使用得当,它们可以更快。

f<char>    # jump to next occurrence of <char> to right (inclusive)

或者

F<char>    # jump back to next occurrence of <char> to left (inclusive)

如果单词之间用空格隔开

如果你的单词被<空格>隔开,你可以通过空格跳过单词:

f<空格>;;;;这里的;重复前一个命令,所以向前跳过空格

F<空格>;;向后跳过空格

如果单词之间用标点符号而不是空格隔开

只需用相应的标点符号替换 <char> ,例如 .

这种方法在浏览时不太高效,但如果你知道要跳到哪里,通常可以在一两次跳跃中到达。


8

使用“b”向后移动 - 在vi中测试过 - 运行良好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接