在VIM中,为什么`db`不删除光标下的字符?

sq1*_*020 7 vim

我读到这就b像是反向的,ebe做了什么,但后退.

因此,如果我点击de一个单词并且光标位于单词的第一个字母上,它将删除整个单词.那很棒!

但是如果我点击db一个单词并且光标位于单词的最后一个字母上,它会删除整个单词,除了光标所在的字母!

我知道我可以在使用时移动一个角色,b但我想保持一致.也许有人可以告诉我为什么b这样做.

And*_*all 9

b不是相反e,因为b排他性的运动,而e包容性的.来自:help e&:help b:

e前进至[count] 包含词的结尾.不要停在空行.

b [count]单词落后. 独家议案.

来自:help exclusive:

角色动作是包含性的还是排他性的.包含时,运动的开始和结束位置包含在操作中.独占时,不包括缓冲区末尾的最后一个字符.线性运动总是包括开始和结束位置.


And*_*Ray 7

vim光标是一个非常恶心的东西,设计很差,模仿终端的块光标.光标位置其实是在块的开始/左侧,因此,如果该块是"开" kbark,你db,你实际上从删除rb.

幸运的是,您可以将光标更改为合理的

  • 我还想为 vim wiki 页面的糟糕程度表示歉意,但所有 vim wiki 页面都同样糟糕。 (2认同)

Xav*_* T. 6

您应该看看:help text-objects:它允许您将命令应用于智能对象,例如单词、句子或段落。

要删除单词,无论光标位于何处,都应该使用diw