vim:删除光标前的行

Lan*_*nes 8 vi

我们可以删除光标后的行(例如:接下来的 3 行):

3dd
Run Code Online (Sandbox Code Playgroud)

但是我们如何删除光标之前的行呢?(例如:光标前 3 行)?

for*_*sck 16

2dk
Run Code Online (Sandbox Code Playgroud)

相同的效果,3dd但向上。

  • 其实这不仅仅是因为你向上删除,而是因为命令的结构不同。'dd' 表示删除这一行。3dd 表示“删除此行”x3。另一方面,“dk”的意思是“从这里删除到一行”——这意味着两行。所以'2dk'意味着从这里删除到两行'。顺便说一句,您可以向下删除相同的内容:'2dj' 也将删除三行 - 它与 '3dd' 相同。 (3认同)
  • 虽然“2”可能听起来有悖常理,但您需要记住,向上删除时,它从光标所在的行开始,/then/ 跟随移动命令。这听起来可能很奇怪,但实际上与 vi 处理命令的方式是一致的。 (2认同)