title |
category |
layout |
tags |
updated |
weight |
Vim |
Vim |
2017/sheet |
|
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.