d{motion}
命令似乎不一致:
d1j " deletes 2 lines to the bottom
d1l " deletes 1 character to the right
这是预期的行为吗?
答案 0 :(得分:10)
当你开始一个动作并且你处于操作员暂挂模式时,你的动作将是包含性的或排他性的,或者是字符式或线性的(线性运动总是包含在内)。
j
是一种包含线性的动议。您可能想尝试dvj
或dgj
(后者适用于屏幕线)。
请参阅:help operator
。您可以分别使用V,v或CTRL-V强制移动为线性,字符或块状。
答案 1 :(得分:2)
实际上并非不一致。我猜你在找
剩下的令人惊讶的部分是由于vim的线性,块状和特征性运动的概念,这实际上只是抽象让Vim 做正确的事或做你期待的事情强>在选择时操作。
就像@Benoit所说,d
是采取动议的运算符。
2j
按行,它将移动两行,覆盖3行。
请注意,如果您想要一些视觉线索,可以设置rn
选项
:se relativenumber
这将导致相对的编号显示在编辑器的左侧“装订线”中。这些数字可用作“地址”,并在您执行“d12j”或“d12k”时执行您的预期
顺便说一句,我建议在习惯之前先熟悉text object
动作。很多时候,文本对象更精确(并且通常在字符模式下工作,在适当的条件下仅降级为线性选择)