cheatsheets/vim.md

9.0 KiB

title category layout tags updated weight
Vim Vim 2017/sheet
Featured
2017-08-26 -10

Getting started

{: .-three-column}

Exiting

{: .-prime}

Shortcut Description
:qa Close all files
:qa! Close all files, abandon changes
--- ---
:w Save
:wq / :x Save and close file
--- ---
:q Close file
:q! Close file, abandon changes
--- ---
ZZ Save and quit
ZQ Quit without checking changes
{: .-shortcuts}

Navigating

Shortcut Description
h j k l Arrow keys
^u / ^d Page up/page down
--- ---
b / w Previous/next word
e / ge Previous/next end of word
--- ---
0 (zero) Start of line
^ Start of line (after whitespace)
--- ---
$ End of line
gg First line
G Last line
--- ---
:n Go to line n
nG Go to line n
{: .-shortcuts}

Entering insert mode

Shortcut Description
a Append
i Insert
o Next line
O Previous line
--- ---
s Delete char and insert
S Delete line and insert
C Delete until end of line and insert
--- ---
R Replace
{: .-shortcuts}

Exiting insert mode

Shortcut Description
Esc / ^[ Exit insert mode
^c Exit insert mode, and abort current command
{: .-shortcuts}

Clipboard

Shortcut Description
x Delete character
--- ---
dd Delete line (Cut)
yy Yank line (Copy)
--- ---
p Paste
P Paste before
{: .-shortcuts}

Visual mode

Shortcut Description
v Enter visual mode
V Enter visual line mode
^v Enter visual block mode
--- ---
d / x Delete selection
s Replace selection
y Yank selection (Copy)
{: .-shortcuts}

Text objects

Usage

Shortcut Description
vip Select paragraph
vipipipip Select more
--- ---
yip Yank inner paragraph
yap Yank paragraph (including newline)
--- ---
dip Delete inner paragraph
{: .-shortcuts}

Text objects

Shortcut Description
ap a paragraph
ip inner paragraph
--- ---
ap ip Paragraph
aw iw Word
as is Sentence
--- ---
a[ a( a{ a< A [], (), or {} block
a' a" a` A quoted string
--- ---
ab A block [(
aB A block in [{
at A XML tag block
{: .-shortcuts}

Navigation

Shortcut Description
[( [{ [< previous ( or { or <
]) next
--- ---
[m previous method start
[M previous method end
{: .-shortcuts}

Misc

Folds

Shortcut Description
zo / zO Open
zc / zC Close
za / zA Toggle
--- ---
zv Open folds for this line
--- ---
zM Close all
zR Open all
--- ---
zm Fold more (foldlevel += 1)
zr Fold less (foldlevel -= 1)
--- ---
zx Update folds
{: .-shortcuts}

Uppercase ones are recursive (eg, zO is open recursively).

Jumping

Shortcut Description
^O Go back to previous location
^I Go forward
--- ---
gf go to file in cursor
{: .-shortcuts}

Counters

| ^A | increment number | | ^X | decrement |

Windows

| z{height}<Cr> | Resize pane to {height} lines tall |

Tags

Shortcut Description
:tag Classname Jump to first definition of Classname
--- ---
^] Jump to definition
g] See all definitions
^t Go back to last tag
^o ^i Back/forward
--- ---
:tselect Classname Find definitions of Classname
:tjump Classname Find definitions of Classname (auto-select 1st)
{: .-shortcuts}

Case

Shortcut Description
~ toggle case (Case => cASE)
gU uppercase
gu lowercase
--- ---
gUU uppercase current line (also gUgU)
guu lowercase current line (also gugu)
{: .-shortcuts}

Do these in visual mode.

Marks

Shortcut Description
`^ Last position of cursor in insert mode
`. Last change
`` Last jump
--- ---
ma Mark this cursor position as a
'a Jump to cursor position a
{: .-shortcuts}

Misc

Shortcut Description
. repeat last command
]p paste under the current indentation level
--- ---
zz Center this line
{: .-shortcuts}

Command line

Shortcut Description
<C-r><C-w> insert current word into the command line
<C-r>" paste from " register
{: .-shortcuts}

Text alignment

:center [width]
:right [width]
:left

See :help formatting

Calculator

<C-r>=128/2

Do this in insert mode.

References

{: .-one-column}

This reference was made for Vim 8.0.