75

我用谷歌搜索,这就是它所说的:

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

我不明白 B 与 b 有何不同。你能举个例子让我明白吗?谢谢。

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

这是游戏的图片:

在此处输入图像描述

4

2 回答 2

114

像大多数大写的移动对一样,b按单词移动,但按单词B移动。不同之处在于 vim 认为“单词”是字母、数字和下划线(您可以使用iskeyword设置进行配置),但“单词”始终是任何不是空格的东西。

所以鉴于此:

foo-bar-baz

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

但是,如果您按B,光标将一直向左移动到f,因为foo-bar-baz都是非空格,因此是单个 WORD。

:help wordvim 内部也解释了这一点。


关于 vim 游戏:我认为游戏将巨石视为标点符号。尝试像这样在 vim 中输入它:

not WORDS*!

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

于 2013-01-18T00:24:18.760 回答
9

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

于 2013-01-18T00:22:33.147 回答