Categories: Hostripples Featured

vi and vim cheat sheet for Linux

Cursor movement :

h – move left
j – move down
k – move up
l – move right
w – jump by start of words (punctuation considered words)
W – jump by words (spaces separate words)
e – jump to end of words (punctuation considered words)
E – jump to end of words (no punctuation)
b – jump backward by words (punctuation considered words)
B – jump backward by words (no punctuation)
0 – (zero) start of line
^ – first non-blank character of line
$ – end of line
G – Go To command (prefix with number – 5G goes to line 5)
Note: Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.

Insert Mode – Inserting/Appending text:

i – start insert mode at cursor
I – insert at the beginning of the line
a – append after the cursor
A – append at the end of the line
o – open (append) blank line below current line (no need to press return)
O – open blank line above current line
ea – append at end of word
Esc – exit insert mode

Editing:

r – replace a single character (does not use insert mode)
J – join line below to the current one
cc – change (replace) an entire line
cw – change (replace) to the end of word
c$ – change (replace) to the end of line
s – delete character at cursor and subsitute text
S – delete line at cursor and substitute text (same as cc)
xp – transpose two letters (delete and paste, technically)
u – undo
. – repeat last command

Marking text (visual mode):

v – start visual mode, mark lines, then do command (such as y-yank)
V – start Linewise visual mode
o – move to other end of marked area
Ctrl+v – start visual block mode
O – move to Other corner of block
aw – mark a word
ab – a () block (with braces)
aB – a {} block (with brackets)
ib – inner () block
iB – inner {} block
Esc – exit visual mode

Visual commands:

> – shift right
y – yank (copy) marked text
d – delete marked text
~ – switch case

Cut and Paste:

yy – yank (copy) a line
2yy – yank 2 lines
yw – yank word
y$ – yank to end of line
p – put (paste) the clipboard after cursor
P – put (paste) before cursor
dd – delete (cut) a line
dw – delete (cut) the current word
x – delete (cut) current character

Exiting:

:w – write (save) the file, but don’t exit
:wq – write (save) and quit
:q – quit (fails if anything has changed)
:q! – quit and throw away changes

Search/Replace:

/pattern – search for pattern
?pattern – search backward for pattern
n – repeat search in same direction
N – repeat search in opposite direction
:%s/old/new/g – replace all old with new throughout file
:%s/old/new/gc – replace all old with new throughout file with confirmations

Working with multiple files:

:e filename – Edit a file in a new buffer
:bnext (or :bn) – go to next buffer
:bprev (of :bp) – go to previous buffer
:bd – delete a buffer (close a file)
:sp filename – Open a file in a new buffer and split window
ctrl+ws – Split windows
ctrl+ww – switch between windows
ctrl+wq – Quit a window
ctrl+wv – Split windows vertically
Another good vim commands cheatsheet and a vi introduction using the “cheat sheet” method


HR-ADMIN

Recent Posts

Why You Should Move Your Website to Cloud Hosting?

Introduction to Cloud Hosting In today's digital world, website performance can make or break an online business. Whether you run…

2 weeks ago

What is a Call to Action in Marketing? Definition + Examples

In the world of digital marketing, getting attention is only half the battle. The real goal is to convince people…

4 weeks ago

Website Bandwidth: What it is and Why it Matters?

Introduction In today's digital world, understanding website bandwidth is essential for anyone running a website. Whether you own a blog,…

1 month ago

Will AI Replace Developers in the Future?

Artificial intelligence is changing the tech world at lightning speed. From automated chatbots to AI-generated applications, many people are now…

1 month ago

What is Bot Traffic? Easy Ways to Detect and Block It

Introduction to Bot Traffic Bot traffic refers to visits to a website that come from automated software programs rather than…

2 months ago