VIM Text Editor Keyboard Commands
Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems. Vim is often called a "programmer's editor," and so useful for programming that many consider it an entire IDE. It's not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email to editing configuration files.
Cursor movement in VIM
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) |
Note: Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.
Insert Mode Inserting/Appending text in VIM
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 in VIM
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) in VIM
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 in VIM
> shift right
< shift left
y yank (copy) marked text
d delete marked text
~ switch case
Cut and Paste in VIM
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 in VIM
: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 in VIM
/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 in VIM
: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
If any feedback, queries are always welcome!
some more shortcuts would be gr8... Ty
Kanti, Thanks for the suggestion. i have given shortcuts which are most commonly used in day to day work. 🙂
was looking for the same.. helped me a lot
can you post commands for nano editor too like this.. thanks in advance