home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / doc / edtut / e5 < prev    next >
Encoding:
Text File  |  1979-01-10  |  4.3 KB  |  275 lines

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