Linux

VIM Text Editor Keyboard Commands

vim editor logoVim 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!

Abhijit Sandhan

Love to Automate, Blog, Travel, Hike & spread Knowledge!

Related Articles

3 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Back to top button