|
|
1.1 ! root 1: # ! 2: cat << '%' ! 3: ##nroff ! 4: .TI VI_PRACTICE ! 5: Practice Session with the Visual Editor "vi" ! 6: .ds CF \" prevents shell from stumbling on the final page number ! 7: .sp ! 8: This will initiate a practice session with the "vi" editor. ! 9: You will be placed in the editor with a file containing instructions ! 10: on how to proceed. ! 11: .sp ! 12: ## ! 13: '%' ! 14: cat > /tmp/hvi$$ << '%' ! 15: --------------------------------------------------------------- ! 16: If you get into trouble: to exit from vi press ESC and type ZZ ! 17: --------------------------------------------------------------- ! 18: ! 19: First of all, we will practice moving around the screen. ! 20: Press the RETURN key to move down a line at a time. ! 21: Keep hitting RETURN until you arrive at the big X below. ! 22: Then use the arrow keys for directional movements. ! 23: ! 24: ______ Start at the x below and move right. ! 25: | ! 26: V ! 27: ! 28: X-----------------------x <-- You should be here. ! 29: | Now go down. ! 30: | ! 31: | ! 32: | ! 33: | ! 34: This is the end. --> x | ! 35: Now use CTRL-d to | | ! 36: scroll downwards. | | ! 37: | | ! 38: | | ! 39: | | ! 40: | | ! 41: | | ! 42: You should be here. --> x---------------x <-- You should be here. ! 43: Now go up. Now move left. ! 44: ! 45: Scrolling goes a few lines at a time. ! 46: If you want to scroll upwards, you could try the CTRL-u command. ! 47: CTRL-d goes down, whereas CTRL-u goes up. ! 48: ! 49: Continue with CTRL-d until you're located around here. ! 50: ! 51: To move a forward a word at a time, just type the letter w -- it ! 52: will not appear on the screen, but the cursor will jump to the ! 53: next word. To go back a word at a time, try the b command. There ! 54: is also the e command, which goes to the end of the current word. ! 55: Try moving around this paragraph with these three commands. ! 56: ! 57: This is a block of text that is pretty boring. Nonetheless, ! 58: there is an interesting word further down. That word is Garbage. ! 59: Do a pattern search for this word. To do this, type a slash (/), ! 60: then type the letters g a r b a g e (without spaces), and a RETURN. ! 61: Bla bla bla bla bla bla bla. Bla bla bla bla. Bla bla bla bla ! 62: bla bla bla bla bla. Bla bla bla bla bla bla bla bla bla bla. ! 63: Bla bla bla bla bla bla bla. ! 64: ! 65: I've had enough of this garbage. <-- You should be on this line. ! 66: ! 67: Now do another search for the same word. ! 68: To do this, type an "n", which will not appear on the screen. ! 69: You will be placed at the next instance of the word. ! 70: ! 71: Another instance of the pattern "garbage". <-- Here it is. ! 72: ! 73: Now continue onwards by pressing RETURN a few times. ! 74: ! 75: --------------------------------------------------------------- ! 76: If you get into trouble: to exit from vi press ESC and type ZZ ! 77: --------------------------------------------------------------- ! 78: ! 79: Now that we've learned to move the cursor around the screen, ! 80: let's try several commands for changing the text. The first is ! 81: the "a" command, which appends text-- everything you type will ! 82: be entered into your file, until you issue an ESC (this is a ! 83: button on the upper left corner of the keyboard). Move down to ! 84: the line below the arrow, and add some text. Don't forget to ! 85: end text input by pressing the ESC key. After you're done, ! 86: move on to the lines below. ! 87: ! 88: | ! 89: | ! 90: V ! 91: ! 92: ! 93: Good. Remember, if you get into a weird state by pressing some ! 94: key you don't know about, you can always get out of the editor ! 95: and back to the shell by pressing ESC and typing ZZ (capital Z ! 96: two times in a row). These characters will not appear on the ! 97: screen, but they will get you out of vi. ! 98: ! 99: Now let's practice deleting characters with the x command. The ! 100: lines below from Shakespeare have several extraneous characters; ! 101: delete them by moving to the extraneous character, and typing x, ! 102: as if you wanted to "x" them out on a typewriter. ! 103: ! 104: Let me Nnot to the marBriage of trEue minds <--- ! 105: admitV impediRAments. ! 106: ! 107: Good. Now try deleting a line with the dd command. Move down ! 108: to the line below, and type d twice in a row. The d's will not ! 109: appear on the screen, but the line will disappear. ! 110: ! 111: THiS liNe iS UggLy AnD wAnTs tO bE dELeTeD. <--- ! 112: ! 113: Say you wanted to add a new line between two other lines. In ! 114: the famous quote below, the fourth line is missing. Just in case ! 115: you're not a John Donne fan, the fourth line is: ! 116: ! 117: And therefore never send to know for whom the bell tolls, ! 118: ! 119: To open up a new line, move the cursor above where the new line ! 120: should go, type an o, which will move you onto the next line, ! 121: and then enter the text, ending with ESC (as with the a command). ! 122: ! 123: No man is an island entire of itself; ! 124: Every man is a piece of the continent, a part of the main. ! 125: Any man's death dimishes me, because I am involved in mankind. ! 126: it tolls for thee. ! 127: ! 128: With these four commands, a x dd and o, you can do anything you ! 129: want. However, learning additional commands will make things ! 130: easier in the long run. For instance, to split the following ! 131: line in half, you could go to the comma, type: a RETURN ESC, but ! 132: it would be easier to go to the space after the comma and type ! 133: r RETURN. The r command replaces whatever is beneath the cursor ! 134: with whatever you type next. ! 135: ! 136: This is an extremely long line, and needs to be split after the comma. ! 137: ! 138: To join lines together again, go to the first line of the two ! 139: you wish to join, and issue the J command. (It must be a capital ! 140: J, because a small j is reserved for down arrow.) ! 141: ! 142: Two short lines ! 143: look better as one. ! 144: ! 145: --------------------------------------------------------------- ! 146: If you get into trouble: to exit from vi press ESC and type ZZ ! 147: --------------------------------------------------------------- ! 148: ! 149: One of the nicest features of vi is that it makes it possible to ! 150: combine movements and changes. If you want to delete a single word, ! 151: for instance, you could move to the word and type x over and over ! 152: until the word is gone. But it's easier to type dw -- which means ! 153: delete word. Try this on the extra word in Shelley's line below: ! 154: ! 155: I met a traveller traveller from an antique land ! 156: ! 157: If you want to change a word, rather than deleting it, you could ! 158: type cw instead of dw -- cw stands for change word. A dollar sign ! 159: will appear at the end of the word, and whatever you type, until ! 160: you press ESC, will replace the original word. Replace the word ! 161: "enormous" with Shelley's original word, "vast": ! 162: ! 163: Who said: Two enormous and trunkless legs of stone ! 164: ! 165: Many commands take arguments indicating their scope. It would be ! 166: painful to delete many lines unless this were the case. Delete ! 167: the three lines below by using the 3dd command, meaning, perform ! 168: the dd command three times: ! 169: ! 170: THiS liNe iS UggLy AnD wAnTs tO bE dELeTeD. <--- ! 171: THiS liNe iS aLSo UggLy AnD wAnTs tO bE dELeTeD. <--- ! 172: THiS liNe, tOo, iS UggLy AnD wAnTs tO bE dELeTeD. <--- ! 173: ! 174: Good. Now you're really blasting away those lines. Don't forget ! 175: that the u command always undoes the last change. Try typing u ! 176: now, and see those 3 lines come back. Try u once more, and see ! 177: them disappear again. Undo is its own inverse. ! 178: ! 179: Oftentimes people who type quickly transpose characters. To fix ! 180: this problem, move to the first character of the transposed pair, ! 181: and issue an xp command -- this stands for x out and put. Mend ! 182: the word below, whose second and third characters are skewed: ! 183: ! 184: hpyerventilate ! 185: ! 186: That's it for this session. If you want to write your changes, ! 187: leave the editor with the ZZ command. If you want to leave your ! 188: text the way it was before, type :q! to quit without writing. ! 189: '%' ! 190: echo -n "Do you want to continue? " ! 191: if ($< !~ y*) then ! 192: echo "OK" ! 193: else ! 194: vi /tmp/hvi$$ ! 195: endif ! 196: rm -f /tmp/hvi$$
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.