为什么在 Vim 中 d + down 会删除两行?

为什么在 Vim 中 d + down 会删除两行?

这种行为在我使用 Vim 的所有环境中都是一致的(Cygwin、Putty、VC、xterm 等)。我意识到这与输入的读取方式和 的表示有关,但我不确定为什么组合键d+会删除两行文本。您愿意解释一下这个问题吗?

答案1

D并且光标移动,则删除该方向。这只是一个标准绑定。

D使用HJKL的方式与箭头键相同。

答案2

dd:d删除当前行,d在可视模式下删除突出显示的文本。当您按住 向下移动一行时d,您可能会突出显示两行,然后根据 VIm 处理d按钮按下的方式删除它们。

答案3

几年后回答我自己的问题:

因为组合键dd删除一行,所以下一个方便的做法是删除两行,无论方向如何。这没有任何逻辑,只是方便而已。上下箭头的行为与左右箭头与 d 的组合不一致。如果是这样,人们可能期望d+删除到行尾或下一行开头或其他“合乎逻辑”的事情,但事实并非如此。组合键d+只删除一个字符,但d+删除整整两行。这既不合逻辑也不一致,只是方便而已。

答案4

这种行为在各个系统中都是一致的,因为它完全正常。你到底在期待什么dj或者d<down>要做什么?

d是“操作符待定命令”:按下后,Vim 会等待动作来应用命令。由于您给了它动作<down>d<down>所以会删除当前行和下面的行。

相关内容