Is there a command to delete one line or several lines that are immediately below the current line in Vim?
Currently, I'm doing it via jdd and then use . to repeat as needed. Is there a command that would combine all these?
The reason I would like to have such command is that I don't like to move away from the current position, yet be able to delete the lines below it.
The delete ex command will work nicely.
:+,$d
This will delete all the lines from current +1 till the end ($)
To delete the next 2 lines the follow range would work, +1,+2
or shorthand +,+2
:+,+2d
As @ib mentioned the :delete
or :d
command will move the cursor to the start of the line next to the deleted text. (Even with nostartofline
set). To overcome this we can issue the ``
normal mode command. ``
will jump back to the exact position before the last jump, in this case the :d
command. Our command is now
:+,+2denter``
Or as one ex command
:+,+2d|norm! ``
To make this easier we wrap this all up in a command:
command! -count=1 -register D :+,+<count>d <reg><bar>norm! ``
Now to delete the next following 3 lines:
:3D
This command can also take a {reg}
like :delete
and :yank
do. So deleting the next 4 lines into register a
would be:
:4D a
For more information
:h :d
:h :command
:h :command-register
:h :command-count
:h ``