Vim:cw 和 dw 空格不一致

rus*_*ord 5 vim vi

vim使用cw(更改单词)和dw(删除单词)时似乎以不同的方式对待空白。

例如,对于下面的示例文本,如果光标位于字母上方a并且我输入dw,它将删除单词的其余部分以及后面的空格,而如果我使用cw,它不会删除空格(并让您留在按预期插入模式)。

例子:

example text
Run Code Online (Sandbox Code Playgroud)

这种行为令人困惑,因为我认为无论(删除)或(更改)动词w如何,(单词)动作都是相同的。dc

Ale*_*exP 5

事情就是这样,记录也是如此。如果你想cw表现得像dw你可以随时说

:map cw dwi
:map cW dWi
Run Code Online (Sandbox Code Playgroud)

:help cw详情请参阅。也看看w:help cpoptions.

从帮助部分cw

特殊情况:当光标位于单词中时,“cw”和“cW”不包括单词后面的空格,它们只更改到单词末尾。这是因为 Vim 将“cw”解释为change-word,并且单词不包含后面的空格。

如果您希望“cw”在单词后面包含空格,请使用以下映射:

:map cw dwi

或者使用“caw”(参见“aw”)。

  • 谢谢,忘记了“vim”的帮助有多好。 (2认同)