这种行为在我使用 Vim 的所有环境中都是一致的(Cygwin、Putty、VC、xterm 等)。我意识到这与输入的读取方式和 的表示有关↓,但我不确定为什么组合键d+↓会删除两行文本。您愿意解释一下这个问题吗?
答案1
D并且光标移动,则删除该方向。这只是一个标准绑定。
D使用H、J、K、L的方式与箭头键相同。
答案2
dd和:d删除当前行,d在可视模式下删除突出显示的文本。当您按住 向下移动一行时d,您可能会突出显示两行,然后根据 VIm 处理d按钮按下的方式删除它们。
答案3
几年后回答我自己的问题:
因为组合键dd删除一行,所以下一个方便的做法是删除两行,无论方向如何。这没有任何逻辑,只是方便而已。上下箭头的行为与左右箭头与 d 的组合不一致。如果是这样,人们可能期望d+→删除到行尾或下一行开头或其他“合乎逻辑”的事情,但事实并非如此。组合键d+→只删除一个字符,但d+↓删除整整两行。这既不合逻辑也不一致,只是方便而已。
答案4
这种行为在各个系统中都是一致的,因为它完全正常。你到底在期待什么dj
或者d<down>
要做什么?
d
是“操作符待定命令”:按下后,Vim 会等待动作来应用命令。由于您给了它动作<down>
,d<down>
所以会删除当前行和下面的行。