Tuesday, September 15, 2009

VI EDITOR

Basic Cursor Movement

    From Command Mode

k Up one line

j Down one line

h Left one character

l Right one character (or use )

w Right one word

b Left one word

Entering, Deleting, and Changing Text
From Command Mode ,

  • i Enter text entry mode
  • x Delete a character
  • dd Delete a line
  • r Replace a character
  • R Overwrite text , press to end

Displaying Line Numbers

    From Command Mode

:set nu Display line numbers

:set nonu Hide line numbers

Exiting vi
  • To exit you must be in command mode-press if you are not in command mode
  • You must press after commands that begin with a : (colon)
From Command Mode

ZZ
Write (if there were changes), then quit
:wq
Write, then quit
:q Quit (will only work if file has not been changed)
:q! Quit without saving changes to file


More On Cursor Movement

From Command Mode

e Move to end of current word

$ Move to end of current line

^ Move to beginning of current line

+ Move to beginning of next line

- Move to beginning of previous line


G Go to last line of the file

:n Go to line with this number (:10 goes to line 10)


d Scroll down one-half screen

u Scroll up one-half screen

f Scroll forward one full screen

b Scroll backward one full screen


) Move to the next sentence

( Move to the previous sentence

} Move to the next paragraph

{ Move to the previous paragraph


H Move to the top line of the screen

M Move to the middle line of the screen

L Move to the last line of the screen


% Move to matching bracket: ( { [ ] } )


Entering Text Mode

From Command Mode

i Insert text before current character

a Append text after current character

I Begin text insertion at the beginning of a line

A Append text at end of a line

o Open a new line below current line

O Open a new line above current line


Commands and Objects

Format Example

operator number object c2w

number operator object 2cw


Operators

c change

d delete

y yank


Objects and Locations

w one word forward

b one word backward

e end of word

H, M, L top, middle, or bottom line on screen

), ( next sentence, previous sentence

}, { next paragraph, previous paragraph

^, $ beginning of line, end of line

/pattern/ forward to pattern



Replacing and Changing Text

From Command Mode

r Replace only the character under the cursor.
(Note: using r you remain in command mode.)

R Beginning with the character under the cursor,
replace as many characters on this line as you
want. (You are in overtype mode until you
press

cw Beginning with the character under the cursor,
change a word to whatever you type. (You are
in insert mode until you press )

c$ Beginning with the character under the cursor,
C change a line to whatever you type. (You are
in insert mode until you press )


Deleting Text

From Command Mode

x Delete a character

dw Delete an alphabetic word and the following space
(6dw deletes six words)

dW Delete a blank-delimited word and the following space

dd Delete a line (6dd deletes six lines)

d$ Delete all characters to the end of the line.
D

d} Delete all characters to the end of the paragraph.

:5,30d Delete lines 5 through 30


Deleted text goes into a temporary buffer that is replaced each time you delete (or copy) more text. The current contents of the buffer can be put back into your file.
Copying and Pasting Text

From Command Mode

yy Copy (yank) the current line

6yy Copy (yank) six lines, beginning with the current line

yw Copy the current word

p Put the text after the cursor position

P Put the text before the cursor position


Copied text goes into a temporary buffer that is replaced each time you copy (or delete) more text. Only the current contents of the temporary buffer can be put back into your file. As a result, when you use copy (y), use the put (p) command immediately.

A yank and put procedure using colon commands:

1. :5,10y Copy lines 5-10

2. Move cursor

3. :put Put after cursor

Other Useful Commands

From Command Mode

. Repeat last command

n. Repeat last command n number of times

J Join next line to current line

u Undo last single change

U Restore current line

~ Change letter's case (capital to lower and vice versa)


Buffers

Temporary Buffer

Deleted or copied text goes into a temporary unnamed buffer. The contents of the temporary buffer may be retrieved by using the p or P commands.

p Put words from temporary buffer after cursor or
put lines from temporary buffer below current line

P Put words from temporary buffer before cursor or
put lines from temporary buffer above current line


Lettered Buffers

There are 26 lettered buffers (a-z). Contents of a lettered buffer are saved until you copy or delete more characters into it, or until you quit your current vi session.


From Command Mode

"ayy Copy (yank) a line into buffer a

"Ayy Appends to buffer a

"a10yy Copies 10 lines into buffer a

"a10dd Deletes 10 lines of text into buffer a

"ap Put contents of lettered buffer a below the current line


Both temporary and lettered buffers last only for the current vi session.

Copying, Deleting, or Moving Text Using Line Numbers
* These commands start with a colon (:) and end with a or
* g shows the line number of the current line
* The basic form of colon commands is

:beginning_line, ending_line command destination

where destination is the line after which you want the text placed.


From Command Mode

:5,10 co 105 Copy lines 5-10 to the line after 105

:5,20 m $ Move lines 5-20 to end of file

:7,300 d Delete lines 7-300 (to buffer)


Searching for Text

From Command Mode

/text Search forward (down) for text (text can include spaces
and characters with special meanings.)

?text Search backward (up) for text

n Repeat last search in the same direction

N Repeat last search in the opposite direction

fchar Search forward for a charcter on current line

Fchar Search backward for a character on current line

; Repeat last character search in the same direction

% Find matching ( ), { }, or [ ]


Substitutions

The simplest way to do substitutions over a range of lines, or throughout the file, is to use the s colon command. The basic form of this command is the following:


:n1,n2s/old/new/gc

n1 is the beginning line

n2 is the ending line number

s means to substitute text matching the pattern (old)
with text specified by (new)

g (global) is optional. It indicates you want to substitute
all occurrences on the indicated lines. If you use
g, the editor substitutes only the first occurrence
on the indicated lines.

c (confirm) is optional. It indicates you want to confirm
each substitution before vi completes it.


From Command Mode

:%s/old/new/g Substitutes old with new throughout the file

:.,$s/old/new/g Substitutes old with new from the current
cursor position to the end of the file

:^,.s/old/new/g Substitutes old with new from the beginning
of the file to the current cursor position

:& Repeats the last substitute (:s) command


ADVANCED VI

1. Writing to and Reading from Files

From Command Mode

:w file Write current file to file

:w>>file Append current file to file

:5,10w file Write lines 5 through 10 to file

:5,10w>>file Append Lines 5 through 10 to file

:r file Read a copy of file into current file

:!ls See a list of files in your current directory


More About Options

From Command Mode-within vi for the current file only

:set all Display all options

:set Display current settings of options

:set nooption Unset option

:set ai Set Auto Indentation during text entry

:set ic Set Ignore Case during searches

:set nu Show line Numbers

:set sm Show Matching ( or { when ) or } is entered

:set wm=10 Set Wrap Margin 10 spaces from right edge of screen


Customizing vi Sessions

Options can be set four ways:
1. During a vi session

:set nu



2. In a .exrc file in your home directory.

Sample contents of a .exrc file

set nu
set ai
set wm=10





TIPS AND TRICKS

1. Making vi an Editor in Pine

1. In your home directory, type: vi .pinerc

2. Find the line that reads


editor=


3. Change it to read


editor=vi


4. Write and quit the file. (ZZ or :wq)

5. Start Pine

6. In Pine in Compose mode, when you are ready to enter message text, you will see there is an option available called Alt Edit. (Alternate Editor). To evoke the Alternate Editor mode, press: _

When finished editing in vi, exit vi and you will be returned to the compose screen.

2. vi-ing More Than One File

You can edit more than one file at a time with vi.

From The Unix Shell Prompt

vi file1 file2 vi two (or more) files at the same time

From Command Mode

:n Move to file2 from file1

:rew Rewind back to file1

:e! Restore original file1 file2 (start all over)

ZZ Save and quit file. (Must be done for each file.)


Issuing Shell Commands From vi

You can issue a single shell command while in the vi editor. For example, to list the files in your directory (ls), follow these steps:

From Command Mode

:w Write changes to your file (just in case).

:!ls List contents of your current directory on the screen.

Press to return to vi.


You can issue many shell commands by temporarily leaving the vi editor.

From Command Mode

:w Write changes to your file.

:sh Return to the shell to enter a number of commands
without leaving vi.

Press d to return to vi editing.


No comments:

Post a Comment