vim - 如何在vim中删除当前行以下的行?

标签 vim

是否有命令可以删除当前行下面的一行(或多行)? 目前我正在这样做: 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/

相关文章:

python - 为什么使用 from __future__ import print_function 会破坏 Python2 样式的打印?

vim - 初学者脚本 : ^@ appearing at the end of text

vim - 区分 Vim 中两次击键之间修饰键的按住和释放

vim - 未找到映射

macros - 如何注释 VIM 宏

vim - 如何在CtrlP中保留上一个目录?

vim - 使用 vim Latex-suite 查看 pdf : ! 启动预览 shell 返回 127

regex - Vim 正则表达式替换/转义管道字符

c - Vim - YouCompleteMe RestartServer 不断关闭

bash - 如何在 vimscript 中使用 sleep 仅用于命令行栏?