In emacs, whenever I want to delete a few lines of text, I just use C-k until all the text is gone. However, in vim it seems a bit more complex. I know I can do d$ to delete until the end of the line and dd to delete the entire line I'm on, but how do I delete all of the next line?


Like this:

| improve this answer | |

Assumption: You want to end up at the line you started on.

My answer: jddk

  • j (moves down)
  • dd (deletes current line)
  • k (moves up)

Try it – it's quick! In fact, it's two keystrokes less than the currently accepted answer because:

  1. you don't need to hold [Shift] to enter the colon ':' and plus '+' characters, and
  2. you don't need the implied [Enter] at the end of the sequence, since jddk is entered all in visual mode as opposed to command mode.

Plus, jddk is all on home row of the keyboard.

I spent a long time using h, j, k, l to navigate in vi, long before the terminal emulation software I used started supporting arrow keys. (I'm talking about ~20 years ago ;-)

| improve this answer | |
  • 1
    hjkl is faster anyway. I've never used a keyboard that didn't have arrow keys on it, and I began to greatly value the efficacy of these keymappings about 10 minutes after I stopped being annoyed at the unintuitiveness of them. – intuited Apr 17 '10 at 22:44

I strongly recommend reading this answer in stack overflow, which got over 500 upvotes: https://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/1220118#1220118 -- the answer is long, but helps to understand why vim is powerful...

| improve this answer | |
  • Thanks for pointing that out! Very thorough and informative answer about grokking vim and vi. – Chris W. Rea Apr 20 '10 at 0:11

You may also be interested in visual mode. Just use v to enter and y to yank or d to delete. Checking :help is a great place when you're stuck as well. For instance :help delete will give you the manual for most of the usual delete commands.

| improve this answer | |

If you want to delete a bunch of lines in a row, you can use dd to delete the line you're on, then keep hitting (or hold down) . (period) to repeat the command.

| improve this answer | |
  • or type Ndd where N is the number of lines to delete. say, to delete the current line and the next two lines (3 total), type 3dd – quack quixote Apr 17 '10 at 10:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.