Vim is a text editor that runs on a console or terminal windows.
Vim was created based on the Vi text editor. At the time Vi was created there were no graphical user interfaces
which is why it relied on keyboard shortcut to perform the editor tasks.
There are several modes in which Vim operate:
h Move left
j Move down
k Move up
l Move right
0 Move to the beginning of line
$ Move to the end of line
w Move to the next word
b Move to the previous word
e Move to the end of the next word
<enter> Move cursor to next line
+ Move cursor to next line
- Move cursor to previous line
H Place cursor on top of screen
M Place cursor on middle of screen
L Place cursor on bottom of screen
^G Show filename and current line
<nnn>G Go to line <nnn>
gg Go to top of file
G Go to bottom of file
^F Page forward
^B Page backward
^D Half Page down
^U Half Page up
z <enter> Place current line to top of screen
z. Place current line to center of screen
z- Place current line to bottom of screen
^E Page down one line
^Y Page up one line
i Insert
a Insert (at next character position)
o Open new line below
s Substitute character
c To change a character
cw Change word
c2b Change two previous words
c$ Change text up to end of sentence
c0 Change text from the beginning of sentence
cc Change current line
:w <file_name> Write file as <file_name>
:w Write file
:q Quit file
r Replace character (without entering Edit mode)
d To delete a character
dw Delete word
db Delete previous word
dd Delete line
2dd Delete two lines
x Delete character
p Paste copied or deleted text
y To copy a character
yw Copy word
y$ Copy text up to end of sentence
yy Copy line
4yy Copy four lines
J Join lines
u Undo changes
/ Search forward
? Search backwards
n Repeat search
N Repeat search in opposite direction
f<x> Find <x> character in current line
F<x> Find <x> character in current line, search backwards
t<x> Find <x> character in current line, place cursor in previous character
T<x> Find <x> character in current line, search backwards, place cursor in next character
; Find next
, Find next, backwards
:s/<old>/<new>/ Substitute first occurrence of string <old> with <new>, in current line
:s/<old>/<new>/g Substitute all occurrences of string <old> with <new>, in current line
:50,100s/<old>/<new>/g Substitute string in the specified range only
:1,$s/<old>/<new>/g Substitute string in the specified range only
:%s/<old>/<new>/g Substitute string in the entire file
:%s/<old>/<new>/gc Substitute string in the entire file, ask for confirmation
:g/<pattern>/s/<old>/<new>/g Find lines that contains the "pattern",
substitute string in those lines
:g/<pattern>/s//<new>/g Find lines that contains the "pattern",
substitute the "pattern" with <new> in those lines
m<x> Set bookmark labeled with character <x>
'<x> Go to bookmark <x>, at the beginning of the line
`<x> Go to bookmark <x>, at the cursor position
'' Go to the next bookmark, at the beginning of the line
`` Go to the next bookmark, at the cursor position
:hide edit example.txt Open file "example.txt"
:buffers Show opened files
:ls Show opened files
:buffer <n> Switch to file in buffer number <n>
:buffer <filename> Switch to file <filename>
:buffer <part-of-filename> Switch to file with the name that contains <part-of-filename>
:bnext Switch to next file
:bprevious Switch to previous file
:bfirst Switch to first file
:blast Switch to last file
:bdelete <n> Close file in buffer number <n>
:bdelete <filename> Close file <filename>
:bdelete <part-of-filename> Close file with the name that contains <part-of-filename>