vi editor commands Linux / Ubuntu tutorial
It is most used editor in linux , there some advance version of vi also , that is VIM, VIM stands for Vi Improved.
Operation modes in vi editor
They can be divided into two main parts.
Command mode
vi always starts in the command mode.
You can, move the cursor and cut, copy, paste the text,finding and replacing text.
Insert mode
This mode is for inserting text in the file.
By pressing ‘i’ on the keyboard we will enter in Insert mode and By pressinf Esc we come out from insert mode.
Starting the vi editor
To launch the VI Editor – Open the Terminal (CLI) and type
vi <filename_NEW> or <filename_EXISTING>
It will Creates a new file if it already does not exist, otherwise opens an existing file.
vi filename.txt
You will notice a tilde (~) on each line following the cursor it represents blank line.
Save or Exting from Vi editor
Before saving or exiting from editor you need to first press Esc key (To come out of the insert mode), then use below key.
Keystroke | Use |
---|---|
:w | Save the file but keep it open |
:q | Quit without saving |
:wq | Save the file and quit |
Shift+zz | Save the file and quit |
If your file has been modified in any way, the editor will warn you of this, and not let you quit. To ignore this message, we use :q! ( also use may use :wq! i.e save and exit ignoring warn message )
Moving within a file
The default keys for navigation are mentioned below else; You can also use the arrow keys on the keyboard.
Keystroke | Use |
---|---|
k | Move cursor up |
j | Move cursor down |
h | Move cursor left |
l | Move cursor right |
Most commands in vi can be prefaced by the number of times you want the action to occur.
Editing Files in VI editor
Before editing the file you need to be in insert mode.
Keystroke | Use |
---|---|
i | Inserts text before the current cursor location |
I | Inserts text at the beginning of the current line |
a | Inserts text after the current cursor location |
A | Inserts text at the end of the current line |
o | Creates a new line for text entry below the cursor location |
O | Creates a new line for text entry above the cursor location |
Deleting Characters
Below command used to deleted characters and lines in an open file −
Keystroke | Use |
---|---|
x | Deletes the character under the cursor location |
X | Deletes the character before the cursor location |
dw | Deletes from the current cursor location to the next word |
d^ | Deletes from the current cursor position to the beginning of the line |
d$ | Deletes from the current cursor position to the end of the line |
D | Deletes from the cursor position to the end of the current line |
dd | Deletes the line the cursor is on |
2x deletes two characters under the cursor location and 2dd deletes two lines the cursor is on.
Note: You should be in the “command mode” to execute these commands.
Keystroke | Use |
---|---|
i | insert at cursor (goes into insert mode) |
a | Write after cursor (goes into insert mode) |
A | Write at the end of line (goes into insert mode) |
ESC | Terminate insert mode |
u | Undo last change |
U | Undo all changes to the entire line |
o | Open a new line (goes into insert mode) |
dd | Delete line |
3dd | Delete 3 line |
D | Delete contents of line after the cursor |
C | Delete contents of a line after the cursor and insert new text. Press ESC key to end insertion. |
dw | Delete word |
4dw | Delete 4 words |
cw | Change word |
x | Delete character at the cursor |
r | Replace character |
R | Overwrite characters from cursor onward |
s | Substitute one character under cursor continue to insert |
S | Substitute entire line and begin to insert at the beginning of the line |
~ | Change case of individual character |
Now moving to Advance vi editor tutorial
Searching and Replacing in vi editor
Finding a Character String
The vi editor has two kinds of searches :
string and character. For a string search, the / and ? commands are used.
To search a character string, just type / followed by the string you want to search for, and then press Return (Enter key). vi positions the cursor at the next occurrence of the string.
For example, type /sata followed by Return, to find the string “sata,”
Type n to go to the next occurrence of the string. Type N to go to the previous occurrence.
To search backward in a file, you can use ? instead of /. In this situation, the directions of n and N are reversed.
Searches normally are case sensitive: a search for “sata” will not find “Sata” If you want vi to ignore case during a search, type :set ic To change it back to the default, case-sensitive mode, type :set noic.
To match any character, type a period (.) in the string at the location to be matched. For example, to find the next occurrence of “stringsearch” or “charsearch,” type:
/.search
For example, to find all strings beginning with a through z and ending with “stringsearch” and to find all occurrences of the string “charsearch”, type:
/[a-z]*search
Replacing a Character String in VI editor
The basic command form is:
:%s/search/replace/g
Then press the Return key.
NOTE: The g stands for globally
prefix % the substitute command to make changes on all lines:
Replace All:
:%s/foo/bar/g
Find each occurrence of ‘foo’ (in all lines), and replace it with ‘bar’.
Find and Replace with Confirmation
Find a word called ‘linux’ and replace with ‘ubuntu’, but ask for confirmation first, enter:
:%s/linux/ubuntu/gc
Find and Replace Whole Word Only
Find whole words exactly matching ‘LINUX’ to ‘ubuntu’; and ask for confirmation too:
:%s/\<LINUX\>/ubuntu/gc
Case Insensitive Find and Replace
Find ‘LINUX’ (match LINUX, linux, Linux and so on) and replace with ‘ubuntu’:
:%s/LINUX/ubuntu/gi
Same command with confirmation
:%s/unix/Linux/gic
Case sensitive Find and Replace
:%s/LINUX/Ubuntu/gI
Same command with confirmation
:%s/LINUX/Ubuntu/gIc
Find and replace In the Current Line Only
:s/Linux/Ubuntu/g
Replace All Lines Between line 8 and line 12?
:{START-n},{END-n}s/word1/word2/g
Find ‘UNIX’ and replace with ‘Linux’ all lines between line 8 and line 12, enter
:8,12s/Linux/ubuntu/g
OR
:8,12s/Linux/ubuntu/gc
vi and vim set command
vi – show lines numbers
Displays lines with line numbers on the left side
:set number
OR
:set nu
And to hide line numbers in vi, use this command
:set nonumber
vim – wrap long lines
To wrap long lines in vim, use the vim “set wrap” command
:set wrap
if you don’t want to wrap long lines use this vim set command:
:set nowrap
vi – ignoring case in searches
Ignores the case when searching
:set ignorecase
OR
:set ic
this command will distinguish between uppercase and lowercase characters in your searches.
:set noignorecase
Running Commands in vi editor
To run a command, you only need to go to the command mode and type :! command.
For example, you can type :! ls this will display output on screen.
:!ls
You May Also Enjoy Reading This …