Vim is a free and open-source, screen-based text editor program for Unix.

Table of Contents


Slides for a Vim presentation are available here.


Command Description
ysw" add surrounding word with "
cst< change surround tag
<V> :sort sort selected lines
zt current line goes to top
zb current line goes to bottom
^e scroll but preserve cursor position
^y scroll top but preserve cursor position
^z pause vim and play in the terminal
fg return to vim
>i{ one indent inside curly brackets (or > i B)
=i{ indent inside curly brackets
^vI enter visual block then add a prefix '#'
% matches equal pairs
@@ execute last macro
:reg lists all registers (macros included)
gv resume the previous visual mode selection
gJ join without whitespace
g_ jump to the last non-blank char of the line
Y same as yy
"0 contents of the latest yank
~ change case
ZZ save and quit
ZQ save without quitting
:x same as :wq
[) next close parens
[} next close curly braces
'' move to last cursor position
'. jump to last modification
`. jump to exact last modification
". last inserted text
": last executed command
@: execute last command
<C-O> retrace (backwards) your movements in a file (:jumps)
<C-I> retrace (forward) your movements in a file (:jumps)
g; cycle through changes (backwards)
g, cycle through changes (forward)
<I> ^r = execute an expression and paste it into the buffer
:marks list of marks
ea append at the end of a word (better than eli)
:tabnew creates a new tab
:tabclose closes the current tab
:r! {cmd} pastes the content of cmd into the buffer
^w < vertically shrinks the window
^w > vertically enlarges the window
<C-a> increment number
<C-x> decrement number
]m next method
[m previous method
( move to beginning of current sentence
) move to beginning of next sentence
[\[ move to beginning of current section
]] move to beginning of next section
gd go to definition (TAGS)
gf edit file at current position
gF edit file at line N at current position (
:g/pattern/d/ delete all lines matching a pattern (g! negates)
:g/^\s*$/d delete blank lines
:e . directory explorer
<I> ^n next keyword completion
<I> ^p previous keyword completion
:windo difft diff on all open windows
+ move to first char of next line
- move to first char of previous line
:20vs . create visual split with the file structure of a dir
d?text delete until search (?/)
"1p." increments the buffer number of the register
:= print all lines
1,10w file write line 1 through 10 to a new file
1,10w >>file append line 1 through 10 to an existing file
:r file read file and paste contents on current line
S (same as cc) erase line and enter insert mode
nH move n lines below top line
nL move n lines above last line
# match previous word under cursor
g# match previous word under cursor <unlisted>
* match next word under cursor
g* match next word under cursor <unlisted>
:grep starts the grep command
<V> o go to the other end of the highlightext text
C-j newline
gi back to previous insert mode
ga show character encoding info
gq<Enter> format paragraphs
C-r <macro> show contents of macro recording
!!<cmd> insert <cmd> result into current line (same as .!<cmd>)



Command Description
]g diagnostic next
[g diagnostic prev
gd go to definition
gi implementation
gr references
gy type definition

Date: 2021-09-11 Sat 00:00

Author: Bruno Coimbra (b-coimbra)

Created: 2022-04-11 Mon 11:02