Vi: Difference between revisions

2,546 bytes added ,  6 years ago
no edit summary
(VI page cerated)
 
No edit summary
Line 1:
 
= Basics =
 
 
i = insert
Line 8:
 
 
= Advanced =
 
 
Going to any line
Line 36:
To sort lines and remove duplicate lines
:sort u
 
Executing a filter command
 
This sorts the file from the first line to the last line and replaces these lines with the sorted output.
The ‘!’ symbol is used within the command line of the Vi editor to execute an external program from within a Vi editor.
 
:1,$!sort
 
 
The -u option with sort will keep only the unique lines and remove the duplicate lines.
:1,$!sort -u
 
The line number 1 and the $ symbol in the above command can be replaced with any portion of the file with the numbers of the starting line and ending line of the particular portion.
The portion selected for input will be replaced by the output of the sort command.
 
To sort the lines starting from the contents of line number 5 to 15, give the following command:
:5,15! Sort
 
Using tr within Vi
 
The following command will convert all the letters in the line numbers 10 to 20 to upper case:
:10,20 ! tr a-z A-Z
 
Writing a portion of a file being edited
:20,50 w > newfile.txt
 
As a result, the lines from 20 to 50 are written in a new file named newfile.txt. The above facility of processing parts of the text and substituting the original content with the output makes the Vi editor very powerful.
Inserting the output of a command executed within the Vi editor
Most users are familiar with the method to execute a shell command within the Vi editor. For example:
:! ls
 
Less known is the fact that you can insert the output of the command given within the Vi editor by placing a ‘.’ (period) before the exclamation mark.
:.! date
 
Cursor movements
 
H The cursor is positioned at the first line of the screen
M The cursor is positioned at the middle line of the screen
L The cursor is positioned at the last line of the screen
 
Scrolling through a file
Ctrl-f Scroll down by one screen
Ctrl-b Scroll up by one screen
Ctrl-u Scroll up by half a screen
Ctlr-d Scroll down by half a screen
zz Scroll the screen so that the current line appears at the middle of the screen, very useful for viewing the block of code associated with the current line.
 
Editing a file opened without sudo
Let’s assume that you are editing a file which requires root access, instead of saving the file by taking many steps, you can save it straight away by using a combination of the tee and sudo commands:
:w !sudo tee %1
 
 
Powerful delete commands
di( Deletes all characters within the parentheses
di” Deletes all characters within the quotes
 
 
Recovering a file, after a crash, from the swap file of the file being edited:
$vi -r filename