是否有命令可以删除当前行下面的一行(或多行)? 目前我正在这样做: jdd 然后 . 根据需要重复。 有没有一个命令可以结合所有这些?
更新:我想要这样的命令的原因是我不喜欢离开当前位置,但又能够删除下面的行。
最佳答案
删除 ex 命令会很好地工作。
:+,$d
这将删除从当前 +1 到末尾 ($) 的所有行
要删除接下来的 2 行,可以使用以下范围:+1,+2
或简写 +,+2
:+,+2d
正如 @ib 提到的 :delete
或 :d
命令会将光标移动到已删除文本旁边的行的开头。 (即使设置了 nostartofline
)。为了克服这个问题,我们可以发出 ``
正常模式命令。 ``
将跳回到上次跳转之前的确切位置,在本例中为 :d
命令。现在我们的命令是
:+,+2d输入``
或者作为一个 ex 命令
:+,+2d|norm! ``
为了使这更容易,我们将这一切包装在一个命令中:
command! -count=1 -register D :+,+<count>d <reg><bar>norm! ``
现在删除接下来的以下 3 行:
:3D
此命令还可以像 :delete
和 :yank
那样采用 {reg}
。因此,将接下来的 4 行删除到寄存器 a
中将是:
:4D a
了解更多信息
:h :d
:h :command
:h :command-register
:h :command-count
:h ``
关于vim - 如何在vim中删除当前行以下的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3624345/