home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / riscbsd / 1_1_contri / usd / 12_edtut / e5 < prev    next >
Encoding:
Text File  |  1986-05-22  |  4.3 KB  |  277 lines

  1. .\"    @(#)e5    6.1 (Berkeley) 5/22/86
  2. .\"
  3. .SH
  4. Change and Insert \- ``c'' and ``i''
  5. .PP
  6. This section discusses the
  7. .ul
  8. change
  9. command
  10. .P1
  11. c
  12. .P2
  13. which is used to change
  14. or replace a group of one or more lines,
  15. and the
  16. .ul
  17. insert
  18. command
  19. .P1
  20. i
  21. .P2
  22. which is used for inserting a group of one or more lines.
  23. .PP
  24. ``Change'', written as
  25. .P1
  26. c
  27. .P2
  28. is used to replace a number of lines with different lines, which
  29. are typed in at the terminal.
  30. For example,
  31. to change lines
  32. .UL .+1
  33. through
  34. .UL $
  35. to something else, type
  36. .P1
  37. \&.+1,$c
  38. \&. . . \fItype the lines of text you want here\fP . . .
  39. \*.
  40. .P2
  41. The lines you type between the
  42. .UL c
  43. command and
  44. the 
  45. .UL .
  46. will take the place of the original lines between
  47. start line and end line.
  48. This is most useful in replacing a line
  49. or several lines which have errors in them.
  50. .PP
  51. If only one line is specified in the
  52. .UL c
  53. command, then just
  54. that line is replaced.
  55. (You can type in as many replacement lines as you like.)
  56. Notice
  57. the use of
  58. .UL .
  59. to end the
  60. input \- this works just like the
  61. .UL .
  62. in the append command
  63. and must appear by itself on a new line.
  64. If no line number is given, line dot is replaced.
  65. The value of dot is set to the last line you typed in.
  66. .PP
  67. ``Insert'' is similar to append \- for instance
  68. .P1
  69. /string/i
  70. \&. . . \fItype the lines to be inserted here\fP . . .
  71. \*.
  72. .P2
  73. will insert the given text
  74. .ul
  75. before
  76. the next line that contains ``string''.
  77. The text between
  78. .UL i
  79. and
  80. .UL .
  81. is
  82. .ul
  83. inserted before
  84. the specified line.
  85. If no line number is specified dot is used.
  86. Dot is set to the last line inserted.
  87. .SH
  88. Exercise 7:
  89. .PP
  90. ``Change'' is rather like a combination of
  91. delete followed by insert.
  92. Experiment to verify that
  93. .P1
  94. \fIstart, end\fP d
  95. i
  96. .ul
  97. \&. . . text . . .
  98. \*.
  99. .P2
  100. is almost the same as
  101. .P1
  102. \fIstart, end\fP c
  103. .ul
  104. \&. . . text . . .
  105. \*.
  106. .P2
  107. These are not
  108. .ul
  109. precisely
  110. the same
  111. if line
  112. .UL $
  113. gets deleted.
  114. Check this out.
  115. What is dot?
  116. .PP
  117. Experiment with
  118. .UL a
  119. and
  120. .UL i ,
  121. to see that they are
  122. similar, but not the same.
  123. You will observe that
  124. .P1
  125. \fIline\(hynumber\fP a
  126. \&. . . \fItext\fP . . .
  127. \*.
  128. .P2
  129. appends
  130. .ul
  131. after
  132. the given line, while
  133. .P1
  134. \fIline\(hynumber\fP i
  135. \&. . . \fItext\fP . . .
  136. \*.
  137. .P2
  138. inserts
  139. .ul
  140. before
  141. it.
  142. Observe that if no line number is given,
  143. .UL i
  144. inserts before line dot, while 
  145. .UL a
  146. appends
  147. after line dot.
  148. .SH
  149. Moving text around: the ``m'' command
  150. .PP
  151. The move command 
  152. .UL m
  153. is used for cutting and pasting \-
  154. it lets you move a group of lines
  155. from one place to another in the buffer.
  156. Suppose you want to put the first three lines of the buffer at the end instead.
  157. You could do it by saying:
  158. .P1
  159. 1,3w temp
  160. $r temp
  161. 1,3d
  162. .P2
  163. (Do you see why?)
  164. but you can do it a lot easier with the 
  165. .UL m
  166. command:
  167. .P1
  168. 1,3m$
  169. .P2
  170. The general case is
  171. .P1
  172. \fIstart line, end line\fP m \fIafter this line\fP
  173. .P2
  174. Notice that there is a third line to be specified \-
  175. the place where the moved stuff gets put.
  176. Of course the lines to be moved can be specified
  177. by context searches;
  178. if you had
  179. .P1
  180. First paragraph
  181. \&. . .
  182. end of first paragraph.
  183. Second paragraph
  184. \&. . .
  185. end of second paragraph.
  186. .P2
  187. you could reverse the two paragraphs like this:
  188. .P1
  189. /Second/,/end of second/m/First/\-1
  190. .P2
  191. Notice the
  192. .UL \-1 :
  193. the moved text goes
  194. .ul
  195. after
  196. the line mentioned.
  197. Dot gets set to the last line moved.
  198. .SH
  199. The global commands ``g'' and ``v''
  200. .PP
  201. The
  202. .ul
  203. global
  204. command
  205. .UL g
  206. is used to execute one or more 
  207. .ul
  208. ed
  209. commands on all those lines in the buffer
  210. that match some specified string.
  211. For example
  212. .P1
  213. g/peling/p
  214. .P2
  215. prints all lines that contain
  216. .UL peling .
  217. More usefully,
  218. .P1
  219. g/peling/s//pelling/gp
  220. .P2
  221. makes the substitution everywhere on the line,
  222. then prints each corrected line.
  223. Compare this to
  224. .P1
  225. 1,$s/peling/pelling/gp
  226. .P2
  227. which only prints the last line substituted.
  228. Another subtle difference is that
  229. the
  230. .UL g
  231. command
  232. does not give a
  233. .UL ?
  234. if
  235. .UL peling
  236. is not found
  237. where the
  238. .UL s
  239. command will.
  240. .PP
  241. There may be several commands
  242. (including
  243. .UL a ,
  244. .UL c ,
  245. .UL i ,
  246. .UL r ,
  247. .UL w ,
  248. but not
  249. .UL g );
  250. in that case,
  251. every line except the last must end with a backslash
  252. .UL \e :
  253. .P1
  254. g/xxx/\*.-1s/abc/def/\e
  255. \&\*.+2s/ghi/jkl/\e
  256. \&\*.-2,\*.p
  257. .P2
  258. makes changes in the lines before and after each line
  259. that contains
  260. .UL xxx ,
  261. then prints all three lines.
  262. .PP
  263. The
  264. .UL v
  265. command is the same as
  266. .UL g ,
  267. except that the commands are executed on every line
  268. that does
  269. .ul
  270. not
  271. match the string following
  272. .UL v :
  273. .P1
  274. v/ /d
  275. .P2
  276. deletes every line that does not contain a blank.
  277.