3. Moving Around in a HurryYou will not use vi only to create new files. You'll spend a lot of your time in vi editing existing files. You rarely want to simply open to the first line in the file and move through it line by line. You want to get to a specific place in a file and start work. All edits begin by moving the cursor to where you want to begin the edit (or, with ex line editor commands, by identifying the line numbers to be edited). This chapter shows you how to think about movement in a variety of ways (by screens, by text, by patterns, or by line numbers). There are many ways to move in vi , since editing speed depends on getting to your destination with only a few keystrokes. This chapter covers:
3.1 Movement by ScreensWhen you read a book, you think of "places" in the book by page: the page where you stopped reading or the page number in an index. You don't have this convenience when you're editing files. Some vi files take up only a few lines, and you can see the whole file at once. But many files have hundreds of lines. You can think of a vi file as text on a long roll of paper. The screen is a window of (usually) 24 lines of text on that long roll. In insert mode, as you fill up the screen with text, you will end up typing on the bottom line of the screen. When you reach the end and press [RETURN] , the top line rolls out of sight, and a blank line appears on the bottom of the screen for new text. This is called scrolling. In command mode, you can move through a file to see any text in it by scrolling the screen ahead or back. And, since cursor movements can be multiplied by numeric prefixes, you can move quickly to anywhere in your file. 3.1.1 Scrolling the Screen[CTRL] [F] There are vi commands to scroll forward and backward through the file by full and half screens:
(In the list of commands above, the
There are also
commands to scroll the screen up one line ( 3.1.2 Repositioning the Screen with z
[z]
If you want to scroll the screen up or down, but you want the cursor
to remain on the line where you left it, use the
z
command, using a numeric prefix as a
multiplier makes no sense. (After all, you would need to
reposition the cursor to the top of the screen only
once. Repeating the same
z
command wouldn't
move anything.)
Instead,
z
understands a numeric prefix as a
line number that it will use in place of the current
line. For example,
z
[RETURN]
moves the current line to the top of the screen, but
200z
[RETURN]
moves line 200 to the top of the screen.
3.1.3 Redrawing the ScreenSometimes while you're editing, messages from your computer system will display on your screen. These messages don't become part of your editing buffer, but they do interfere with your work. When system messages appear on your screen, you need to redisplay, or redraw, the screen. Whenever you scroll, you redraw part of (or all of) the screen, so you can always get rid of unwanted messages by scrolling them off the screen and then returning to your previous position. But you can also redraw the screen without scrolling, by typing [CTRL-L] or [CTRL-R] . [CTRL-R] is useful when you're editing on a dumb terminal or at a slow baud rate (such as when working via a modem). 3.1.4 Movement Within a Screen[H] You can also keep your current screen, or view of the file, and move around within the screen using:
3.1.5 Movement by Line
[RETURN]
Within the current screen there are also commands to move by line.
You've already seen
The above three commands move down or up to the first
character
of the line, ignoring any spaces or tabs.
3.1.5.1 Movement on the Current Line
Don't forget that
As with the line movement commands above,
|
|