UNIX EDITOR
UNIX system starts a special version of a shell called an interactive shell, and shows a shell prompt, usually in the form of a dollar sing ($), a percent sign( %), or a pound sign (#), When we type a line of input at a shell prompt, the shett tries to interpret it. Input to a shell prompt is sometimes called a command line.The basic format
Modes in vi
There are three basic modes of vi:
Command mode
This is the default when you enter vi. In command mode, most letters, or short sequences of letters, that you type will be interpreted as commands, without explicitly pressing Enter . If you press Esc when you're in command mode, your terminal will beep at you. This is a very good way to tell when you're in command mode.
Insert mode
In insert mode, whatever you type is inserted in the file at the cursor position. Type a (lowercase letter a, for append) to enter insert mode from command mode; press Esc to end insert mode, and return to command mode.
Line mode
Use line mode to enter line oriented commands. To enter line mode from command mode, type a colon . Your cursor moves to the bottom of the screen, by a colon prompt. Type a line mode command, then press Enter. Any sensible command from the Unix line editor ex will work, and a few are good to know about. These commands are indicated in this handout by a colon in front of the command. Each time you use a line mode command, you must type a colon to enter line mode, then type the command by the colon prompt at the bottom of the screen, then press Enter when you finish typing the command.
Starting vi and Saving Files
|
| |
Moving the Cursor
Many commands take number prefixes; for example 5w moves to the right by 5 words.
Type: | To Move To: |
H | one space to the left (also try left arrow) |
J | one line down (also try down arrow) |
K | one line up (also try up arrow) |
L | one space to the right (also try right arrow) |
$ | end of current line |
^ | beginning of current line |
Enter | beginning first word on the next line |
G | end of file |
:n | line n; use :0 to move the beginning of the file |
w | beginning of next word; 5w moves to the beginning of the 5th word to the right |
E | end of next word |
B | beginning of previous word |
Ctrl-b | one page up |
Searching for Text
Type: | To: |
/string | search down for string |
?string | search up for string |
N | repeat last search from present position |
Inserting Text
Type: | To: |
a | append starting right of cursor |
A | append at the end of the current line |
i | insert starting left of cursor |
I | insert at beginning of the current line |
o | open line below cursor, then enter insert mode |
O | open line above cursor, then enter insert mode |
:r newfile | add the contents of the file newfile starting below the current line |
Deleting Text
Type: | To: |
X | Delete single character; 5x deletes 5 characters |
Dw | Delete word; 5dw deletes 5 words |
Dd | Delete line; 5dd deletes ... well you get the idea! |
Cw | Delete word, leaves you in insert mode (i.e. change word) |
Cc | change line -- delete line and start insert mode |
S | change character -- delete character and start insert mode |
D | Delete from cursor to end of line |
C | change from cursor to end of line -- delete and start insert mode |
U | undo last change |
Cutting and Pasting
Type: | To: |
Xp | transpose two characters (two commands, x followed by p) |
Yy | yank (i.e. copy) one line into a general buffer (5yy to yank 5 lines) |
"ayy | yank into the buffer named a |
P | put the general buffer back before the current line |
"aP | put from buffer a before current line |
P | put the general buffer back after the current line |
"ap | put from buffer a after the current line |
Miscellaneous Commands
Type: | To: |
Ctrl-g | show line number of current line |
0 comments:
Post a Comment