Menu

gitpiper

Vim Cheat Sheet in April 2024

Last Updated: 7 April 2024

README.md

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
<C-U> / <C-D> Half-page up/down
<C-B> / <C-F> Page up/down
{: .-shortcuts}

Words

Shortcut Description
b / w Previous/next word
ge / e Previous/next end of word
{: .-shortcuts}

Line

Shortcut Description
0 (zero) Start of line
^ Start of line (after whitespace)
$ End of line
{: .-shortcuts}

Character

| fc | Go forward to character c |
| Fc | Go backward to character c |
{: .-shortcuts}

Document

Shortcut Description
gg First line
G Last line
:n Go to line n
nG Go to line n
{: .-shortcuts}

Window

Shortcut Description
zz Center this line
zt Top this line
zb Bottom this line
H Move to top of screen
M Move to middle of screen
L Move to bottom of screen
{: .-shortcuts}

Search

Shortcut Description
n Next matching search pattern
N Previous match
* Next whole word under cursor
# Previous whole word under cursor
{: .-shortcuts}

Tab pages

Shortcut Description
:tabedit [file] Edit file in a new tab
:tabfind [file] Open file if exists in new tab
:tabclose Close current tab
:tabs List all tabs
:tabfirst Go to first tab
:tablast Go to last tab
:tabn Go to next tab
:tabp Go to previous tab

Editing

Shortcut Description
a Append
A Append from end of line
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 one character
R Enter Replace mode
u Undo changes
<C-R> Redo changes
{: .-shortcuts}

Exiting insert mode

Shortcut Description
Esc / <C-[> Exit insert mode
<C-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
"*p / "+p Paste from system clipboard
"*y / "+y Paste to system clipboard
{: .-shortcuts}

Visual mode

Shortcut Description
v Enter visual mode
V Enter visual line mode
<C-V> Enter visual block mode
{: .-shortcuts}

In visual mode

Shortcut Description
d / x Delete selection
s Replace selection
y Yank selection (Copy)
{: .-shortcuts}

See Operators for other things you can do.

Operators

{: .-three-column}

Usage

{: .-prime}

Operators let you operate in a range of text (defined by motion). These are performed in normal mode.
{: .-setup}

| d | w |
| Operator | Motion |
{: .-css-breakdown}

Operators list

Shortcut Description
d Delete
y Yank (copy)
c Change (delete then insert)
> Indent right
< Indent left
= Autoindent
g~ Swap case
gU Uppercase
gu Lowercase
! Filter through external program
{: .-shortcuts}

See :help operator

Examples

Combine operators with motions to use them.
{: .-setup}

Shortcut Description
dd (repeat the letter) Delete current line
dw Delete to next word
db Delete to beginning of word
2dd Delete 2 lines
dip Delete a text object (inside paragraph)
(in visual mode) d Delete selection

See: :help motion.txt

Text objects

{: .-three-column}

Usage

{: .-prime}

Text objects let you operate (with an operator) in or around text blocks (objects).
{: .-setup}

| v | i | p |
| Operator | [i]nside or [a]round | Text object |
{: .-css-breakdown}

Text objects

Shortcut Description
p Paragraph
w Word
s Sentence
[ ( { < A [], (), or {} block
' " ` A quoted string
b A block [(
B A block in [{
t A XML tag block
{: .-shortcuts}

Examples

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

See Operators for other things you can do.

Diff

Shortcut Description
gvimdiff file1 file2 [file3] See differences between files, in HMI

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).

Navigation

Shortcut Description
% Nearest/matching {[()]}
[( [{ [< Previous ( or { or <
]) Next
[m Previous method start
[M Previous method end
{: .-shortcuts}

Jumping

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

Counters

Shortcut Description
<C-A> Increment number
<C-X> Decrement
{: .-shortcuts}

Windows

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

Tags

Shortcut Description
:tag Classname Jump to first definition of Classname
<C-]> Jump to definition
g] See all definitions
<C-T> Go back to last tag
<C-O> <C-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 or normal mode.

Marks

Shortcut Description
`^ Last position of cursor in insert mode
`. Last change in current buffer
`" Last exited current buffer
`0 In last file edited
‘’ Back to line in current buffer where jumped from
`` Back to position in current buffer where jumped from
`[ To beginning of previously changed or yanked text
`] To end of previously changed or yanked text
`< To beginning of last visual selection
`> To end of last visual selection
ma Mark this cursor position as a
`a Jump to the cursor position a
'a Jump to the beginning of the line with position a
d’a Delete from current line to line of mark a
d`a Delete from current position to position of mark a
c’a Change text from current line to line of a
y`a Yank text from current position to position of a
:marks List all current marks
:delm a Delete mark a
:delm a-d Delete marks a, b, c, d
:delm abc Delete marks a, b, c
{: .-shortcuts}

Misc

Shortcut Description
. Repeat last command
]p Paste under the current indentation level
:set ff=unix Convert Windows line endings to Unix line endings
{: .-shortcuts}

Command line

Shortcut Description
<C-R><C-W> Insert current word into the command line
<C-R>" Paste from " register
<C-X><C-F> Auto-completion of path in insert mode
{: .-shortcuts}

Text alignment

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

See :help formatting

Calculator

Shortcut Description
<C-R>=128/2 Shows the result of the division : ‘64’

Do this in insert mode.

Exiting with an error

:cq
:cquit

Works like :qa, but throws an error. Great for aborting Git commands.

Spell checking

Shortcut Description
:set spell spelllang=en_us Turn on US English spell checking
]s Move to next misspelled word after the cursor
[s Move to previous misspelled word before the cursor
z= Suggest spellings for the word under/after the cursor
zg Add word to spell list
zw Mark word as bad/mispelling
zu / C-X (Insert Mode) Suggest words for bad word under cursor from spellfile
{: .-shortcuts}

See :help spell

Also see


338+ more cheat sheets for you in April 2024

Subscribe to our Newsletter

Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️

© 2024 GitPiper. All rights reserved

Rackpiper Technology Inc

Company

About UsBlogContact

Subscribe to our Newsletter

Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️