vi is a text processing tool that carries out the following tasks on Solaris and other UNIX systems:
Creates new text files
Modifies existing files
Searches for a text string in a file
Replaces one string with another in a file
Moves or copies a string within a file
Removes a string from a file
To run vi from the command line and create a new file, the following command can be used:
$ vi
To run vi from the command line and edit an existing file, the following command can be used:
$ vi file.txt
where file.txt is the filename of the file to be edited. The result of editing a file (such as /etc/passwd.txt) is shown in Figure 16-1.
When editing an existing file, the visual editor copies the bytes from disk into a member buffer, which is then operated on according to user commands. Text can be inserted during edit mode, while commands are executed during command mode. Changes are not written to disk until the appropriate save command is executed. During edit mode, special keys like the arrow keys will not operate as commands to move the cursor around the screen; instead, the actual code will be inserted into the file. These keys can only be used when the editor is in command mode. During edit mode, you can switch to command mode by pressing the ESCAPE key. When in command mode, you can switch to edit mode by pressing the I key.
The following commands can be executed in command mode:
/ Performs a forward search for a text string.
? Performs a backward search for a text string.
: Runs an ex editor command on the current line.
! Executes a shell within vi.
ZZ Saves a file and exits.
h Moves the cursor left.
j Moves the cursor down.
k Moves the cursor up.
l Moves the cursor right.
nG Moves cursor to line n.
w Moves to next word.
b Moves back one word.
dw Deletes words.
ndw Deletes n words.
d^ Deletes all words to the beginning of the line.
dd Deletes the current line.
dG Deletes all lines to the end of the file.
D Deletes all words to the end of the line.
x Deletes the current character.
nx Deletes n characters to the right.
nY Yanks n lines into the buffer.
p Pastes to the right of the cursor.
P Pastes to the left of the cursor.
EXAM TIP |
You should be able to identify the functions of each of these commands for the exam. |
A separate set of commands, called the ex commands, can be run by using the colon in conjunction with one of these commands:
:n Moves cursor to line n.
:$ Moves cursor to the end of the file.
:%s/a/b/g Replaces all occurrences of string a with string b.
:wq Saves modified file and quits.
:q! Quits without saving any changes.
:set Sets a number of different options.
Let’s examine the result of using the ex command :%s/a/b/g. Figure 16-2 shows the /etc/passwd with an ex command that will search for all occurrences of "export" and replace them with "staff".
Figure 16-3 shows the result output. The string /export/home now changes to /staff/home.