VIM Editor Commands

VIM Editor Commands

Vim is an editor to create or edit a text file.

There are two modes in vim. One is the command mode and another is the**insert mode**.

In the command mode, user can move around the file, delete text, etc.

In the insert mode, user can insert text.

Changing mode from one to another

From command mode to insert mode type a/A/i/I/o/O ( see details below)
From insert mode to command mode type Esc (escape key)

Some useful commands for VIM

Text Entry Commands (Used to start text entry)
KEY FUNCTION
a Append text following current cursor position
A Append text to the end of current line
i Insert text before the current cursor position
I Insert text at the beginning of the cursor line
o Open up a new line following the current line and add text there
O Open up a new line in front of the current line and add text there
The following commands are used only in the commands mode.
Cursor Movement Commands
KEY FUNCTION
h Moves the cursor one character to the left
l Moves the cursor one character to the right
k Moves the cursor up one line
j Moves the cursor down one line
o Open up a new line following the current line and add text there
O Open up a new line in front of the current line and add text there
nG or :n Cursor goes to the specified (n) line. (ex. 10G goes to line 10)
^F (CTRl F) Forward screenful
^B Backward screenful
^f One page forward
^b One page backward
^U Up half screenful
^D Down half screenful
$ Move cursor to the end of current line
0 (zero) Move cursor to the beginning of current line
w Forward one word
b Backward one word

Exit Commands

KEY FUNCTION
:wq Write file to disk and quit the editor
:q! Quit (no warning)
:q Quit (a warning is printed if a modified file has not been saved)
ZZ Save workspace and quit the editor (same as :wq)
: 10,25 w temp write lines 10 through 25 into file named temp. Of course, other line numbers can be used. (Use :f to find out the line numbers you want

Text Deletion Commands

KEY FUNCTION
x Delete character
dw _Delete word from cursor on _
db _Delete word backward _
dd _Delete line _
d$ _Delete to end of line _
d^ (d caret, not CTRL d) _ Delete to beginning of line_

Yank (has most of the options of delete)-- VI's copy commmand

KEY FUNCTION
yy yank current line
y$ yank to end of current line from cursor
yw _yank from cursor to end of current word _
5yy _yank, for example, 5 lines _

Paste (used after delete or yank to recover lines.)

KEY FUNCTION
p paste below cursor
P paste above cursor
2p paste from buffer 2 (there are 9)
u Undo last change
U Restore line
J Join next line down to the end of the current line

File Manipulation Commands

KEY FUNCTION
:w Write workspace to original file
:w file Write workspace to named file
:e file Start editing a new file
:r file Read contents of a file to the workspace

To create a page break, while in the insert mode, press the CTRL key

Other Useful Commands Most commands can be repeated n times by typing a number, n, before the command. For example 10dd means delete 10 lines.

Repeat last command

KEY FUNCTION
cw _ Change current word to a new word_
r Replace one character at the cursor position
R Begin overstrike or replace mode � use ESC key to exit
:/ pattern Search forward for the pattern
:/pattern Search forward for the pattern
:?pattern Search backward for the pattern
n (used after either of the 2 search commands above to continue to find next occurrence of the pattern.
:g/pat1/s//pat2/g replace every occurrence of pattern1 (pat1) with pat2
:g/tIO/s//Ada.Text_IO/g This will find and replace tIO by Ada.text_IO everywhere in the file.
:g/a/s// /g _ replace the letter a, by blank_
Examples
Opening a New File
Step 1 type vim filename	(create a file named filename) 
Step 2 type i	( switch to insert mode)  
Step 3 enter text (enter your Ada program) 
Step 4 hit Esc key	(switch back to command mode) 
Step 5 type :wq	(write file and exit vim)
Editing the Existing File
Step 1 type vim filename	(edit the existing file named filename) 
Step 2 move around the file using h/j/k/l key or any appropriate command 
h Moves the cursor one character to the left  
l Moves the cursor one character to the right  
k Moves the cursor up one line 
j Moves the cursor down one line  
nG or :n Cursor goes to the specified (n) line  
(ex. 10G goes to line 10)  
Step 3 edit required text (replace or delete or insert)  
Step 4 hit Esc key (exit from insert mode if you insert or replace text)  
Step 5 type :wq 

Reference : https://mytutorials.xyz/post/view/VIM-Editor-Commands/5/1060/1060