≡ Menu

How do I Be More Productive In Vim?

This is a user contributed FAQ.

Q. I'm just starting in vim text editor but I'm annoying typing and retyping similar statements. Can you address me about it?

A. Yes. Vim offer several functionalities that improve your editing. Here are some of them.

1. Copying a whole line
yy or shift y or :ny

where n is the number of line if n is not specified then copy the current line

2. Copying from current position to end of line.
y$

3. Copying 3 lines after the current position
3yy

4. Copying a range of line
:1,5y or :1y 5
The above example copy 5 lines, from 1 to 5

5. Deleting a whole line (Deleted line is copy to the registers)
dd or :nd
Where n is the number of line if n is not specified then delete the current line

6. Deleting from current position to end of line (Deleted text is copied to the registers)
d$ or shift d
7. Deleting a range of line
:1,5d or :1d 5
The above example remove 5 lines, from 1 to 5 and copy them to a register
8. Put n times a text, previously copied, after the cursor:
np

9. Put n times a text, previously copied, before the cursor
n Shift p

10. Word completion, works in insert mode

  1. Ctrl n search forward for next matching
  2. Ctrl p search backward for previous matching

Very useful in programming (perl, bash, java, other)

11. Put vim in replace mode
Shift r

12. Undo
u

13. Redo
Ctrl r

14. Repeating last change
.

15. Getting help about a topic
:help topic

Note: previous commands work in command mode except 10.

This article / faq is contributed by Yoander Valdés Rodríguez (yoander). nixCraft welcomes readers' tips / howtos.

Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 5 comments… add one }

  • housetier May 25, 2008, 9:49 pm

    I likle this series very much. While I already know quite a few things about vim, I usually discover new tricks here. Thanks!

  • Vaishnavi September 17, 2008, 10:44 am

    I love Vim for one more option.
    Ctrl-P for the match it provides when you type a word(Similar to autocomplete option) in Vim. very handy when writing large function and variable names.
    You might want to try and include that aswell.

  • guest August 13, 2009, 5:49 am

    int main(some garbage, I want to change )

    when I am inside (…), do: ci”int argc

  • guest August 13, 2009, 6:05 am

    int main(some garbage, I want to change )

    when I am inside (…), do: ci)int argc

  • Jose Tapia April 14, 2013, 9:13 am

    Vim ROCKS!

Leave a Comment