The visual (Vi) editor is a screen editor that comes with the AIX operating system. The vi program is used to
create and edit text files. Initially, the editor is in command mode. Vi is based on the ex line editor, but unlike ex,
vi will allow you to use the arror keys if you are using (or emulating) a terminal that provides support for them. If
your terminal does not support the full screen mode (eg. using TELNET from the IBM 4381), you may still edit text
by issuing the appropriate commands.
When you edit a file, vi makes a copy of the file to a memory buffer. This way, if any unwanted changes are made,
the original file is not destroyed. When your work is completeed, you must remeber to save the buffer which
contains your changes. The visual editor has two modes of operation: text input mode and command mode.
The vi editor can be executed by issuing the command:
vi [-l] [-R] [+n | +/pattern] [filename]
where filename is the name of the file to be edited or created, n is the line number on which
to start the display, and pattern is a string specifying which line on which to start. You will then be
placed in command mode. The -l option tells vi to create indents appropriate for LISP code. Passing the
-R option tells vi to open the file read-only -- the same as if the view command was used. When editing a file, vi places a tilde (~) as the first character of lines past the end of your file. These lines are not
part of your file, and are for display purposes only.Using vi Editor
Moving the Cursor
There are over forty commands that can be used to move the cursor throughout the file. The table below will
show some of the more common key sequences and their actions on the cursor. To repeat a command, type the
number of times the command is to be performed and then press the command key sequence.
Key Action Key Action
-------------------------------------------------------------------------------
h or [Left Arrow] Left one character l or [Right Arrow] Right one character
j or [Down Arrow] Down one line k or [Up Arrow] Up one character
^ 1st character on current line $ End of current line
0 1st position of current line G Last line of the file
+ 1st character of next line :n Line n of the file
- 1st character of previous line H Top line of screen
nH n lines after top line M Middle line of screen
nL n lines before last line L Last line of screen
B Back one word (ignore punctuation) b Back one word
E End of next word (ignore punctuation) e End of next word
W Start of next word (ignore punctuation) w Start of next word
( Beginning of previous sentence ) Beginning of next sentence
[[ Back one section ]] Forward one section
{ Beginning of previous paragraph } Beginning of next paragraph
[CTRL][B] Scroll back one screen [CTRL][F] Scroll forward one screen
[CTRL][U] Scroll back half screen [CTRL][D] Scroll forward half screen
[CTRL][E] Scroll up one line [CTRL][Y] Scroll down one line
Marking Text and Returning
Facilities are provided for placing a mark within a line of text. You can then move the cursor to that mark with
a few simple keystrokes. To place a mark at the current cursor position, use the m command followed by
a single, lowercase letter. This letter will be the mark placed in the line. Later when you wish to return to the mark,
enter the ` command followed by the mark character. To go to the beginning of the line which contains
the mark, use the ' command followed by the mark character. If you moved a block of text, you can return
to the previous mark by issuing the " command.
Text Input Mode
Text input mode can be used to enter and delete new text in your file. Below is a table showing the various
key sequences to place you into text input mode as well as those to return to command mode and perform operation
while in text input mode. When you are in text input mode, everything you type will be placed into your document
until you press the [ESC] key.
Key Action Key Action
-------------------------------------------------------------------------------
a Insert after cursor A Append to end of line
i Insert before cursor I Insert at beginning of line
o Insert line below cursor O Insert one line above cursor
[CTRL][J] Move down one line [CTRL][W] Move back one word
[ENTER] Add a new line [Backspace] Move back one character
kill Delete line (set by stty) [CTRL][H] Move back one character
[CTRL][I] Insert a tab [CTRL][T] Move to next tab setting
[ESC] Returns to command mode [CTRL][V] Quote next character
Deleting and Changing text
These commands let you change or delete the text that is currently in your file. Each command can be
repeated by entering the number of times the command is to be performed before entering the command. The table
below shows some of the more common editing commands:
Key Action Key Action
-------------------------------------------------------------------------
cw Change word cc Change line
C Change text from current cl change character right of cursor
position to end of line . Repeat last change
dd Delete current line ndd Delete n lines
D Delete remainder of line dw Delete a word
d} Delete to next paragraph d^ Delete back to beginning of line
dh Delete char left d/pattern Delete up to pattern
dn Delete up to pattern dL Delete up to last line on screen
dfa Delete up to and dta Delete up to a
including a
dG Delete to end of file ~ Reverse case
p Inserts last deleted text P Inserts last deleted text before cursor
after cursor
rx Replaces character with x Rtext Replaces text beginning at cursor
s Substitute character S Substitute entire line
x Delete current cursor position X Delete back one character
Moving and Copying Text
You can also move and copy text within a file by use of a temporary buffer in vi. When you issue one of the
deletion commands mentioned in the previous section, vi places the deleted text in a temporary buffer. You can
then place that text after or before cursor position by issuing the p or P command respectively.
Sometimes, however, you want to copy the text to a new location. To save you from having to delete the text and
put it back from where it was deleted, vi provided a series of text moving functions.
Pressing Y or yy will copy the current line to the buffer. The y]] command will copy
the text up to the next section heading. You can also copy to the end of a word by using the ye
command.
The vi editor also provides a series of numbered buffers that you can use for storing multiple selections of text. To
use these buffers, type a " followed by the buffer number before the yy, d, or
p commands. This will respectively yank the current line, delete the character, and put the contents of the
specified buffer into the file. Since buffer one is used by vi for normal deletion, you may wish to use a safer buffer
when moving or copying text. This can be done by using a lower case letter as the buffer number. As an example,
to yank the next 3 lines of text and place them in buffer r you would type:
"r3yy
Searching for Text
The vi editor also provides an extensive set of search commands while in command mode. You can
search forwards and backwards for a specific character by using the f and F commands
respectively. The character for which you are searching should be specified after the search command. You can
repeat the last character search by pressing the ; key. Pressing the , will reverse the search
direction for character searches.
If you are programming in LISP or writing equations, you may find it useful to match your parenthesis and brackets.
This can be done in vi by use of the % command. This command will find the match for the current
brace, bracket, or parenthesis.
You can also search for a text string by placing a / in front of the text for which you are searching. The vi
editor will then place the cursor at the first location after the cursor of the specified text. To search backwards from
the cursor, use the ? instead of a /. You can repeat the previous search by pressing n,
repeat the search in the opposite direction with the N command, repeat the forward search with the
/ command, and using ? will repeat the previous backwards search command.
Aligning Text
You can tell vi to shift your text 8 spaces to the right or left by use of the > > and < <
commands respectively. If you wish to shift your text from the current line to the end of the screen, use the
> L and < L commands. You can also join two lines by using the J command.
This command will place the next line at the end of the current line, wrapping the text to the next line as necessary.
If you want to break up a line into two or more lines, place the cursor at the position where the line is to be broken,
and insert a carriage return ([ENTER]).
Undoing Changes
Sometimes you will make a change and then immediately wish you could undo it. Such a wish is possible with
vi. To undo an action, you must be in command mode. Pressing u will undo the last command entered.
Pressing U, will cause vi to undo all the changes made to the current line.
Saving and Leaving vi
There are several ways to quit vi both with and without saving your file. Each of these commands should be
entered in the command mode. If you wish to save your file and continue working, use the :w command.
If you have not given your file a name you should do so by specifying the filename after the :f command.
Then you can use :w to save the file. If you want to save the file under a different name, you can specify
it after the :w command. Specifying an ! after the :W command will force vi to
overwrite an existing file if the changed name represents a file that already exists. You can also write specific lines
to a file by specifying the start and ending line numbers (separated by a comma) between the : and the
w. For example, the command
:3,25w partial.file
will save lines 3 through 25 to the partial.file file.
If you want to save your work and exit the editor, you can do that by issuing the ZZ or the :wq
command. If you wish to quit vi without saving and you have not made any changes to the file, you can use the
:q command. If you have made changes to the file, but you wish to exit vi without saving them, use the
:q! command.
Using ex Commands
The vi editor is the open/visual mode of the ex editor. Therefore, when using vi, you can easily switch to ex's
command mode. The ex editor provides some commands which are unavailable in vi. For example, the commands
to perform global search and replace operations. To get a list of ex commands, please see the appropriate man
pages. To switch to ex while you are editing a file, press Q. This will place you in ex's command mode.
When you wish to quit ex and return to vi, type the vi command.
Editing Multiple Files
The vi editor provides facilities for editing several files. To edit a new file while in vi, enter the :e
command followed by the name of the file. The current file becomes the alternate file if no changes have been
made, otherwise, the new file becomes the alternate file. To switch to the alternate file, enter the command :e
# or press [CTRL] [A] . If you wish to discard the changes in the current file and reload the last saved version,
issue the :e! command. You can also specify the line on which to start editing by specifying a +
followed by a line number between the :e command and the filename.
You can make a list of files to edit by placing each filename after the :n command. To edit the next file in
the list, issue the :n command.
Including Text from Files and Command Output
It is also possible to insert a file into the current file. The editor will place the new file after the cursor. To
insert the file, use the :r command followed by the name of the file to be inserted. The editor also lets you
insert the output of an AIX command into your document. To do this, issue the :r ! command followed by
the name of the AIX command to run. You can also specify which line of the output to start including by placing it
between the : and the r.
vi Editor Tips
- You can suspend the process running vi by pressing [CTRL] [Z] . This will bring you back to your OS prompt. To return to vi, make the process the foreground process with the fg command.
- You can issue AIX commands from within vi by typing :! followed by the command.
- You can create a subshell by issuing the :sh command. When you are done, press [CTRL] [D] or type EXIT [ENTER] to return to vi.
- You can move the cursor to a specific column by specifying the column number and then the vertical bar ( | ) character.
- You can set the column position for vi to wrap the text by setting the wrap margin variable. For example, to set the warp at column 65 you would enter the command :set wm=15 where 15 is 80 - desired column position.
0 Comment to "Working with Vi editor in AIX"
Post a Comment