在 Vim 中 b 和 B 有什么区别?

我谷歌了一下,上面是这么写的:

倒退一个单词,用 b。再一次,B 将在 Vim 认为的单词中包含更多的字符。

我不明白 B 和 b 有什么不同,你能给我举个例子让我明白吗?谢谢。

[编辑]实际上我想知道这个,因为在在线的 vim 游戏,我试图回到单词从!但是没用。但是,当我尝试在我的计算机上安装 Vim 时,它与 b 一起工作。那么这只是为了让玩家在线索的帮助下使用 B 吗?

下面是游戏的图片:

enter image description here

20685 次浏览

将标点符号作为单词的一部分,只使用空格作为单词分隔符; 不将标点符号作为单词的一部分。

像大多数大写的移动对一样,b按单词移动,而 B按单词移动。区别在于,vim 认为“ WORD”是字母、数字和下划线(您可以使用 iskeyword设置来配置它) ,但是“ WORD”是 一直都是中任何不是空格的东西。

鉴于此:

foo-bar-baz

如果光标在 z上,按下 b,光标将移回到 baz的开始位置,然后移到连字符,再移回到 bar的开始位置,依此类推。它们中的每一个对 vim 来说都是一个不同的“单词”: foo-bar-baz

但是如果按下 B,光标将一直向左移动到 f,因为 foo-bar-baz是全部非空格的,因此只有一个 WORD。

血管内 :help word也解释了这一点。


关于 vim 游戏: 我认为这个游戏把巨石当作标点符号。试着像这样输入 vim:

not WORDS*!

当光标指向 !时,b会将您移回到 *,因为 *!全是标点符号,因此是一个单词。但是 *实际上是一块巨石,所以你不能移动到那里,所以什么也不会发生。另一方面,B会跳过所有不是空格的内容。