DEV Community

Cover image for Vim quickies/ cheatsheet
Rubin
Rubin

Posted on Edited on

Vim quickies/ cheatsheet

Vim Cheatsheet

Contents
Generally helpful stuff
Navigating around text
Working with multiple files
Searching
Manipulating text
Visual Advanced selection
Working with NERDTree
Commands

Generally helpful stuff

Open a file for editing             :e path/to/file.txt
Return to Normal mode               ESC   or <CTRL>+C
Enter fullscreen mode Exit fullscreen mode

Navigating around text

You have to be in Normal mode. Use ESC to get out of Visual, Replace, or Insert mode.

(left)                       h
(down)                       j
(up)                         k
(right)                      l
next word                    e
Jump to the first line       gg
Jump to the last line        G
Enter fullscreen mode Exit fullscreen mode

Entering Text

Insert text before cursor               i
Insert text after cursor                a
Enter fullscreen mode Exit fullscreen mode

Working with multiple files

Open a file in a horizontal split   :sp path/to/file.txt
Open a file in a vertical split     :vsp path/to/file.txt
Move to a split window page         <CTRL>+w and a direction key (h, j, k, or l)
Move to next window pane            <CTRL>w w
Make selected pane bigger           CTRL>w +  (yes, you need the shift key for the plus)
Make selected pane smaller          <CTRL>w -
Enter fullscreen mode Exit fullscreen mode

Searching

Search for a word                           /<word>
Go to next match                            n
Find and replace on line                    :s/<find>/<replace>
Find and replace globally                   :%s/<find>/<replace>//gc
Go to first quote, replace text in quotes:  ci"
Enter fullscreen mode Exit fullscreen mode

Manipulating text

cut the current line                dd
copy the current line               yy
paste below current line            p
paste above current line            P
Remove the character under cursor   x
Remove the character before cursor  X
Delete the word under cursor        de
Delete to the end of the line       d$

Remove five lines starting here     5dd
Copy five lines starting here       5yy 

indent this line                    >>
indent five lines starting here     5>>

Replace mode (overtype)             r
Enter fullscreen mode Exit fullscreen mode

Visual Advanced selection

Visual mode                         v
Visual Line mode                    V
Visual Block mode                   <CTRL>v
Enter fullscreen mode Exit fullscreen mode

Working with NERDTree

Open the NERDTree                   :NERDTree
Toggle the NERDTree on and off      :NERDTreeToggle
Open selected file                  <ENTER>
Open selected file in horiz. split  i
Open selected file in vert. split   v
File menu                           m
Help                                ?
Enter fullscreen mode Exit fullscreen mode

Commands:

Run a command                           :!<command>
Open a shell                            :sh
Enter fullscreen mode Exit fullscreen mode

For interactive tutorial, try openvim.com

Follow me on Github: www.github.com/rubiin

Top comments (28)

Collapse
 
moopet profile image
Ben Sinclair •

"Delete the word under cursor" should be diw, de only works for the same purpose if you're already at the start of the word.

"Replace mode (overtype)" should be R, r will only let you change a single character.

Collapse
 
jasper_zanjani profile image
Jasper Zanjani •

Your comment made me go back to Oualline's Vim Book to research this. I totally did not know about the i and a motion commands! Great tip!

Collapse
 
rubiin profile image
Rubin •

cool

Collapse
 
vlasales profile image
Vlastimil Pospichal •

de is good for delete word from cursor to end. It is good for different purpose.

Collapse
 
zchtodd profile image
zchtodd •

I've been working with Vim for quite a while, but there's always something new to learn. Still to this day I'll hit a sequence of keys by mistake and something will happen that I've never seen before.

Collapse
 
rubiin profile image
Rubin •

thats the beauty of vim

Collapse
 
gnsp profile image
Ganesh Prasad •

There is a catch with visual block mode. If you're running vim in a terminal that maps Ctrl+v to paste action, then Ctrl+v won't work for visual block mode in vim. However, vim also maps Ctrl+q to visual block mode in defaults. IMO, it's safer to memorize Ctrl+q as the key combination for visual block mode.

Collapse
 
rubiin profile image
Rubin •

Cool. Haven't tried that one yet

Collapse
 
moopet profile image
Ben Sinclair •

Unless your OS maps C-q to "quit application" :)

Collapse
 
chsanch profile image
Christian Sรกnchez •

To understand more about movements/navigation in vim I would recommend to read the section 03 in the Vim user manual, just execute:

:h usr_03
Collapse
 
rubiin profile image
Rubin •

I have also added a link to an interactive site

Collapse
 
oinak profile image
Oinak •

Very good article!

Thanks for sharing

in Searching section, where you say:

Find and replace globally :%s/<find>/<replace>//gc

I think you may mean

Find and replace globally :%s/<find>/<replace>/gc

and maybe could comment that the final 'c' is for asking for confirmation on each replacement.

Thanks for your work and time.

Collapse
 
mahendrachoudhary profile image
Mahendra Choudhary •

I use vim very often and always hard time to remember all the commands , thanks for this cheat sheet brother

Collapse
 
rubiin profile image
Rubin •

Anytime bro. It takes heck lot of time to get used to Vi , I myself find forgetting many commands , and whenever I do i visit this cheetsheet

Collapse
 
jasper_zanjani profile image
Jasper Zanjani •

delete to end of line is also D

Collapse
 
prabangkoro profile image
bagus prabangkoro •

I've been using vim for few weeks, and it'getting natural and saves my time a lot! I like its clear rule, text object (sentence, paragraph, word, tag), or action (delete, copy, change).

Collapse
 
rubiin profile image
Rubin •

Yeah. If you are doing things on console, you can see it's power

Collapse
 
rubiin profile image
Rubin •

BTW you can check openvim.com if you are starting out

Collapse
 
get_right_a1 profile image
/ •

To toggle the case=> `
This would be pretty useful to correct the typos.

To repeat the previous command=> .

Collapse
 
daviddalbusco profile image
David Dal Busco •

I think I basically use only i a x / n dd : wq since years ๐Ÿ˜

Thx for new tips ๐Ÿ‘

Collapse
 
rubiin profile image
Rubin •

Anytime