home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume44 / vim / part06 < prev    next >
Encoding:
Internet Message Format  |  1994-08-16  |  69.7 KB

  1. From: mool@oce.nl (Bram Moolenaar)
  2. Newsgroups: comp.sources.misc
  3. Subject: v44i025:  vim - Vi IMproved editor, v3.0, Part06/26
  4. Date: 16 Aug 1994 21:17:45 -0500
  5. Organization: Sterling Software
  6. Sender: kent@sparky.sterling.com
  7. Approved: kent@sparky.sterling.com
  8. Message-ID: <32rs09$kc6@sparky.sterling.com>
  9. X-Md4-Signature: 834ad53e3ce1324fc7f6c7c97cdd2dee
  10.  
  11. Submitted-by: mool@oce.nl (Bram Moolenaar)
  12. Posting-number: Volume 44, Issue 25
  13. Archive-name: vim/part06
  14. Environment: UNIX, AMIGA, MS-DOS, Windows NT
  15. Supersedes: vim: Volume 41, Issue 50-75
  16.  
  17. #! /bin/sh
  18. # This is a shell archive.  Remove anything before this line, then feed it
  19. # into a shell via "sh file" or similar.  To overwrite existing files,
  20. # type "sh file -c".
  21. # Contents:  vim/doc/reference.doc.C vim/macros/maze/maze_mac.UU
  22. #   vim/src/ascii.h
  23. # Wrapped by kent@sparky on Mon Aug 15 21:44:00 1994
  24. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin:$PATH ; export PATH
  25. echo If this archive is complete, you will see the following message:
  26. echo '          "shar: End of archive 6 (of 26)."'
  27. if test -f 'vim/doc/reference.doc.C' -a "${1}" != "-c" ; then 
  28.   echo shar: Will not clobber existing file \"'vim/doc/reference.doc.C'\"
  29. else
  30.   echo shar: Extracting \"'vim/doc/reference.doc.C'\" \(48444 characters\)
  31.   sed "s/^X//" >'vim/doc/reference.doc.C' <<'END_OF_FILE'
  32. X            comes from the 'scroll' option (default: half a
  33. X            screen). If [count] given, first set 'scroll' option
  34. X            to [count].
  35. X
  36. X<SC_UP>        or
  37. XCTRL-B            Window [count] pages Backwards (upwards) in the
  38. X            buffer.
  39. X
  40. XWindow repositioning:
  41. X
  42. Xz<CR>            Redraw, line [count] at top of window (default
  43. X            cursor line). Put cursor at first non-blank in the
  44. X            line.
  45. X
  46. Xzt            Like "z<CR>", but leave the cursor in the same
  47. X            column. {not in Vi}
  48. X
  49. Xz{height}<CR>        Redraw, make window {height} lines tall. This is
  50. X            useful to make the number of lines small when screen
  51. X            updating is very slow. Cannot make the height more
  52. X            than the physical screen height.
  53. X
  54. Xz.            Redraw, line [count] at center of window (default 
  55. X            cursor line). Put cursor at first non-blank in the
  56. X            line.
  57. X
  58. Xzz            Like "z.", but leave the cursor in the same column.
  59. X            {not in Vi}
  60. X
  61. Xz-            Redraw, line [count] at bottom of window (default 
  62. X            cursor line). Put cursor at first non-blank in the
  63. X            line.
  64. X
  65. Xzb            Like "z-", but leave the cursor in the same column.
  66. X            {not in Vi}
  67. X
  68. XThese commands move the contents of the window. If the cursor position is 
  69. Xmoved off of the window, the cursor is moved onto the window. A page is the 
  70. Xnumber of lines in the window minus two. The mnemonics for these commands 
  71. Xmay be a bit confusing. Remember that the commands refer to moving the 
  72. Xwindow upwards or downwards in the buffer. But when the window moves upwards 
  73. Xin the buffer, the text in the window moves downwards on your screen.
  74. X
  75. X
  76. X    8. Tags
  77. X
  78. X:ta[g][!] {ident}    Jump to the definition of {ident}, using the
  79. X            information in the tags file. Put {ident} in the tag
  80. X            stack. See below for [!].
  81. X
  82. XCTRL-]            ":ta" to the identifier under or after cursor. Put 
  83. X            the identifier in the tag stack. {Vi: identifier 
  84. X            after the cursor}
  85. X
  86. XCTRL-T            Jump to [count] older entry in the tag stack
  87. X            (default 1). {not in Vi}
  88. X
  89. X:[count]po[p][!]    Jump to [count] older entry in tag stack (default 1).
  90. X            See below for [!]. {not in Vi}
  91. X
  92. X:[count]ta[g][!]    Jump to [count] newer entry in tag stack (default 1).
  93. X            See below for [!]. {not in Vi}
  94. X
  95. X:tags            Show the contents of the tag stack. The active
  96. X            entry is marked with a <>>. {not in Vi}
  97. X
  98. XA tag is an identifier that appears in the "tags" file. It is a sort of label
  99. Xthat can be jumped to. For example: In C programs each function name can be 
  100. Xused as a tag.
  101. X
  102. XWith the ":tag" command the cursor will be positioned on the tag. With the
  103. XCTRL-] command, the identifier on which the cursor is standing is used as the
  104. Xtag. If the cursor is not on an identifier, the first identifier rightwards 
  105. Xof the cursor is used.
  106. X
  107. XThe 'ignorecase' option can be used to make the tag search case insensitive.
  108. X
  109. XIf the tag is in the current file this will always work. Otherwise the
  110. Xperformed actions depend on whether the current file was changed, whether a !
  111. Xis added to the command and on the 'autowrite' option:
  112. X
  113. X  tag in       file        autowrite
  114. Xcurrent file  changed   !   option      action
  115. X-----------------------------------------------------------------------------
  116. X    yes         x    x     x      goto tag
  117. X    no         no    x     x      read other file, goto tag
  118. X    no        yes    yes    x   abandon current file, read other file, goto
  119. X                      tag
  120. X    no        yes    no    on  write current file, read other file, goto
  121. X                      tag
  122. X    no        yes    no   off  fail
  123. X-----------------------------------------------------------------------------
  124. X
  125. X- If the tag is in the current file, the command will always work.
  126. X- If the tag is in another file and the current file was not changed, the 
  127. X  other file will be made the current file and read into the buffer.
  128. X- If the tag is in another file, the current file was changed and a ! is 
  129. X  added to the command, the changes to the current file are lost, the other 
  130. X  file will be made the current file and read into the buffer.
  131. X- If the tag is in another file, the current file was changed and the 
  132. X  'autowrite' option is set, the current file will be written, the other 
  133. X  file will be made the current file and read into the buffer.
  134. X- If the tag is in another file, the current file was changed and the 
  135. X  'autowrite' option is not set, the command will fail. If you want to save 
  136. X  the changes, use the ":w" command and then use ":tag" without an argument. 
  137. X  This works because the tag is put on the stack anyway. If you want to lose 
  138. X  the changes you can use the ":tag!" command.
  139. X
  140. XThe ":tag" command works very well for C programs. If you see a call to a
  141. Xfunction and wonder what that function does, position the cursor inside of 
  142. Xthe function name and hit CTRL-]. This will bring you to the function 
  143. Xdefinition. An easy way back is with the CTRL-T command. Also read about the 
  144. Xtag stack below.
  145. X
  146. XA tags file can be created with the external command 'ctags'. It will 
  147. Xcontain a tag for each function. Some versions of 'ctags' will also make a 
  148. Xtag for each "#defined" macro.
  149. X
  150. XThe lines in the tags file should have this format:
  151. X
  152. X    {tag}{separator}{filename}{separator}{command}
  153. X
  154. X{tag}        the identifier
  155. X{separator}    one or more <TAB> or space characters
  156. X{filename}    the file that contains the definition of {tag}
  157. X{command}    the Ex command that positions the cursor on the tag.
  158. X
  159. XThe command can be any Ex command, but normally it is a search command like 
  160. X"/^main(argc, argv)". If it is a search command, and the search fails,
  161. Xanother try is done to search for "^main(" (the tag with <^> prepended and
  162. X<)> appended). When using function names, this will find the function name
  163. Xwhen it is in column 0. This will help when the arguments to the function
  164. Xhave changed since the tags file was made. If this search also fails another
  165. Xtry is done with "^[#a-zA-Z_].*main(". This means: A line starting with <#>
  166. Xor an identifier and containing the tag followed by <(>. This will find
  167. Xmacro names and function names with a type prepended. {the two extra
  168. Xsearches are not in vi}.
  169. X
  170. X{In vi the :tag command sets a new search pattern when the tag is searched
  171. Xfor. In Vim this is not done, the previous search pattern is still
  172. Xremembered. The search pattern for the tag is not remembered.}.
  173. X
  174. X
  175. XThe 'tags' option is a list of file names separated by spaces. Each of these 
  176. Xfiles is searched for the tag. This can be used to use a different file than 
  177. Xthe default file "tags". It can also be used to access a common tags file. 
  178. XFor example:
  179. X
  180. X:set tags=tags\ /home/user/commontags
  181. X
  182. XThe tag will first be searched for in the file "tags" in the current
  183. Xdirectory. If it is not found there the file "/home/user/commontags" will be
  184. Xsearched for the tag. The backslash is required for the space to be included
  185. Xin the string option.
  186. X
  187. XIf the 'tagrelative' option is set (which is the default) and using a tag file
  188. Xin another directory, file names in that tag file are relative to the
  189. Xdirectory where the tag file is.
  190. X
  191. X
  192. XThe tags that you use are remembered in the tag stack. You can print this 
  193. Xstack with the ":tags" command. The result looks like this:
  194. X
  195. X  # TO tag      FROM line in file
  196. X  1 main               1  harddisk2:text/vim/test
  197. X> 2 FuncA             58  -current-
  198. X  3 FuncC            357  harddisk2:text/vim/src/amiga.c
  199. X
  200. XThis list shows the tags that you jumped to and the cursor position before that 
  201. Xjump. The older tags are at the top, the newer at the bottom.
  202. X
  203. XThe <>> points to the active entry. This is the tag that will be used by the 
  204. Xnext ":tag" command. The CTRL-T and ":pop" command will use the position 
  205. Xabove the active entry.
  206. X
  207. XThe line number and file name are remembered to be able to get back to where 
  208. Xyou were before the tag command. The line number will be correct, also when
  209. Xdeleting/inserting lines, unless this was done by another program (e.g.
  210. Xanother instance of Vim).
  211. X
  212. XYou can jump to previously used tags with several commands. Some examples:
  213. X
  214. X    ":pop" or CTRL-T     to position before previous tag
  215. X    {count}CTRL_T        to position before {count} older tag
  216. X    ":tag"            to newer tag
  217. X    ":0tag"         to last used tag
  218. X
  219. XThe most obvious way to use this is while browsing through the call graph of 
  220. Xa program. Consider the following call graph:
  221. X
  222. X    main  --->  FuncA  --->  FuncC
  223. X          --->  FuncB
  224. X
  225. X(Explanation: main calls FuncA and FuncB; FuncA calls FuncC).
  226. XYou can get from main to FuncA by using CTRL-] on the call to FuncA. Then 
  227. Xyou can CTRL-] to get to FuncC. If you now want to go back to main you can 
  228. Xuse CTRL-T twice. Then you can CTRL-] to FuncB.
  229. X
  230. XIf you issue a ":ta {ident}" or CTRL-] command, this tag is inserted at the
  231. Xcurrent position in the stack. If the stack was full (it can hold up to 20
  232. Xentries), the oldest entry is deleted and the older entries shift one
  233. Xposition up (their index number is decremented by one). If the last used
  234. Xentry was not at the bottom, the entries below the last used one are
  235. Xdeleted. This means that an old branch in the call graph is lost. After the
  236. Xcommands explained above the tag stack will look like this:
  237. X
  238. X  # TO tag      FROM line in file
  239. X  1 main               1  harddisk2:text/vim/test
  240. X  2 FuncB             59  harddisk2:text/vim/src/main.c
  241. X>
  242. X
  243. X
  244. X    9. Inserting text
  245. X
  246. XThe following commands can be used to insert new text into the buffer. They
  247. Xcan all be undone. The non-Ex commands can be repeated with the "." command.
  248. X
  249. Xa            Append text after the cursor [count] times.
  250. X
  251. XA            Append text at the end of the line [count] times.
  252. X
  253. Xi            Insert text before the cursor [count] times.
  254. X
  255. XI            Insert text before the first CHAR on the line
  256. X            [count] times.
  257. X
  258. Xo            Begin a new line below the cursor and insert text,
  259. X            repeat [count] times. {Vi: blank [count] screen
  260. X            lines}
  261. X
  262. XO            Begin a new line above the cursor and insert text,
  263. X            repeat [count] times. {Vi: blank [count] screen
  264. X            lines}
  265. X
  266. XThese commands are used to start inserting text. They can be undone and
  267. Xrepeated. You can end Insert mode with <ESC>. See the section "Insert and
  268. XReplace mode" for the other special characters in Insert mode. The effect of
  269. X[count] takes place after Insert mode is exited.
  270. X
  271. X:r[ead] [name]        Insert the file [name] (default: current file) below
  272. X            the cursor.
  273. X
  274. X:{range}r[ead] [name]    Insert the file [name] (default: current file) below
  275. X            the specified line.
  276. X
  277. X:r[ead] !{cmd}        Execute {cmd} and insert its standard output below
  278. X            the cursor.
  279. X
  280. XThese commands insert the contents of a file, or the output of a command, 
  281. Xinto the buffer. They can be undone. They cannot be repeated with the "." 
  282. Xcommand. They work on a line basis, insertion starts below the line in which 
  283. Xthe cursor is, or below the specified line. To insert text above the first 
  284. Xline use the command ":0r {name}".
  285. X
  286. XThe <LF> character is recognized as end-of-line marker. If the 'textmode'
  287. Xoption is set, a <CR> in front of an <LF> is ignored and a CTRL-Z at the end
  288. Xof the file is ignored. The 'textmode' option is default on for MSDOS.
  289. X
  290. XIf the 'textauto' option is set Vim tries to recognize the type of
  291. Xend-of-line marker (see 5.2 how this is done). However, the 'textmode'
  292. Xoption will not be changed. Only while reading one file the text mode is
  293. Xused or not.
  294. X
  295. XOn non-MSDOS systems the message "[textmode]" is shown if a file is read in
  296. Xtext mode, to remind you that something unusual is done. On MSDOS the
  297. Xmessage "[notextmode]" is shown if a file is read without text mode.
  298. X
  299. X
  300. X    10. Deleting text
  301. X
  302. X["x]x            Delete [count] characters under and after the cursor
  303. X            [into register x] (not linewise).
  304. X
  305. X["x]X            Delete [count] characters before the cursor [into
  306. X            register x] (not linewise).
  307. X
  308. X["x]d{motion}        Delete text that is moved over [into register x]. 
  309. X            See below for exception.
  310. X
  311. X["x]dd            Delete [count] lines [into register x] (linewise).
  312. X
  313. X["x]D            Delete the characters under the cursor until the end
  314. X            of the line and [count]-1 more lines [into register 
  315. X            x]; synonym for d$ (not linewise).
  316. X
  317. X{visual}["x]x    or
  318. X{visual}["x]d        Delete the highlighted text [into register x] (see
  319. X            the chapter on Visual mode). {not in Vi}
  320. X
  321. X{visual}["x]X    or
  322. X{visual}["x]D        Delete the highlighted lines [into register x] (see
  323. X            the chapter on Visual mode). {not in Vi}
  324. X
  325. X:[range]d[elete] [x]    Delete [range] lines (default: current line) [into
  326. X            register x].
  327. X
  328. X:[range]d[elete] [x] {count}
  329. X            Delete {count} lines, starting with [range]
  330. X            (default: current line, see 4.4.4) [into register
  331. X            x].
  332. X
  333. XThese commands delete text. They can be repeated with the "." command
  334. X(except ":d") and undone. Use Visual mode to delete blocks of text. See
  335. X"Copying and moving text" for an explanation of registers.
  336. X
  337. XAn exception for the d{motion} command: If the motion is not linewise, the 
  338. Xstart and end of the motion are not in the same line and before the start 
  339. Xand after the end are only blanks, the delete becomes linewise. This means 
  340. Xthat the blank line that would remain is also deleted.
  341. X
  342. X
  343. XJ            Join [count] lines, with a minimum of two lines.
  344. X
  345. X{visual}J        Join the highlighted lines, with a minimum of two
  346. X            lines. {not in Vi}
  347. X
  348. X:[range]j[oin][!]    Join [range] lines. Same as "J", except when [!] is
  349. X            given, then no spaces will be inserted or deleted.
  350. X            When [range] is given and the start and end of the
  351. X            range are equal, nothing happens. Default is to join
  352. X            two lines.
  353. X
  354. X:[range]j[oin][!] {count}
  355. X            Join {count} lines, starting with [range] (default:
  356. X            current line, see 4.4.4). Same as "J", except when
  357. X            [!] is given, then no spaces will be inserted or 
  358. X            deleted.
  359. X
  360. XThese commands delete the newline between lines. This has the effect of 
  361. Xjoining them into one line. They can be repeated (except ":j") and undone. 
  362. X
  363. XOne space is inserted in place of the <LF>, unless the line ended with a 
  364. Xspace, <TAB> or the next line started with a <)>. If the next line has 
  365. Xleading white space it is deleted first. If the 'joinspaces' option is set, 
  366. Xtwo spaces are inserted after a period.
  367. X
  368. X
  369. X    11. Changing text
  370. X
  371. XThe following commands can be used to change text, that is delete some text 
  372. Xand insert something else, with one command. They can all be undone. The 
  373. Xnon-Ex commands can be repeated with the "." command.
  374. X
  375. X
  376. X11.1 Delete and insert
  377. X
  378. XR            Enter Replace mode: Each character you type replaces
  379. X            an existing character, starting with the character
  380. X            under the cursor. Repeat the entered text [count]-1
  381. X            times.
  382. X
  383. X["x]c{motion}        Delete {motion} text [into register x] and start
  384. X            insert.
  385. X
  386. X["x]cc            Delete [count] lines [into register x] and start
  387. X            insert (linewise). If 'autoindent' is set, preserve
  388. X            the indent of the first line.
  389. X
  390. X["x]C            Delete from the cursor position to the end of the
  391. X            line and [count]-1 more lines [into register x], and 
  392. X            start insert. Synonym for c$ (not linewise).
  393. X
  394. X["x]s            Delete [count] characters [into register x] and start
  395. X            insert (s stands for Substitute). Synonym for "cl"
  396. X            (not linewise).
  397. X
  398. X["x]S            Delete [count] lines [into register x] and start 
  399. X            insert. Synonym for "cc" (not linewise).
  400. X
  401. X{visual}["x]c    or
  402. X{visual}["x]r    or
  403. X{visual}["x]s        Delete the highlighted text [into register x] and
  404. X            start insert (see the chapter on Visual mode). {not
  405. X            in Vi}
  406. X
  407. X{visual}["x]C    or
  408. X{visual}["x]R    or
  409. X{visual}["x]S        Delete the highlighted lines [into register x] and
  410. X            start insert (see the chapter on Visual mode). {not
  411. X            in Vi}
  412. X
  413. XYou can end Insert and Replace mode with <ESC>. See the section "Insert and
  414. XReplace mode" for the other special characters in these modes. The effect of
  415. X[count] takes place after Insert or Replace mode is exited. {Vi: does not
  416. Xdirectly delete the text, but puts a <$> at the last deleted character}
  417. XSee "Copying and moving text" for an explanation of registers.
  418. X
  419. XReplace mode is just like Insert mode, except that for every character you 
  420. Xenter, one character is deleted. If the end of a line is reached, further 
  421. Xcharacters are appended (just like Insert mode). In Replace mode the 
  422. Xbackspace key restores the original text (if there was any) (see section
  423. X"Insert and Replace mode").
  424. X
  425. XSpecial case: "cw" and "cW" are treated like "ce" and "cE" if the cursor is 
  426. Xon a non-blank. This is because "cw" is interpreted as change-word, and a 
  427. Xword does not include the following white space. {Vi: "cw" when on a blank 
  428. Xfollowed by other blanks changes only the first blank; this is probably a 
  429. Xbug, because "dw" deletes all the blanks}
  430. X
  431. X
  432. X11.2 Simple changes
  433. X
  434. Xr<char>            Replace the character under the cursor by <char>. If
  435. X            <char> is a <CR> or <LF> the character will be
  436. X            replaced by a line break. If a [count] is given that
  437. X            many characters will be replaced by [count] <char>s
  438. X            or line breaks {Vi: "5r<CR>" replaces five
  439. X            characters with a single line break}
  440. X
  441. X~            'notildeop' option: switch case of the character
  442. X            under the cursor and move the cursor to the right.
  443. X            If a [count] is given do that many characters {Vi:
  444. X            no count}
  445. X
  446. X~{motion}        'tildeop' option: switch case of {motion} text. {Vi: 
  447. X            tilde cannot be used as an operator}
  448. X
  449. X{visual}~        switch case of highlighted text (see the chapter on 
  450. X            Visual mode). {not in Vi}
  451. X
  452. X{visual}U        Make highlighted text uppercase (see the chapter on 
  453. X            Visual mode). {not in Vi}
  454. X
  455. X{visual}u        Make highlighted text lowercase (see the chapter on 
  456. X            Visual mode). {not in Vi}
  457. X
  458. XCTRL-A            Add [count] to the number at or after the cursor.
  459. X            {not in Vi}
  460. X
  461. XCTRL-X            Subtract [count] from the number at or after the 
  462. X            cursor. {not in Vi}
  463. X
  464. XThe CTRL-A and CTRL-X commands work for (signed) decimal numbers and 
  465. Xunsigned octal and hexadecimal numbers. Numbers starting with '0x' or '0X' 
  466. Xare assumed to be hexadecimal. To decide whether the hexadecimal number 
  467. Xshould be printed uppercase or not, the case of the rightmost letter in the 
  468. Xnumber is considered. If there is no letter in the current number, the 
  469. Xpreviously detected case is used. Numbers starting with a <0> are considered 
  470. Xto be octal. Other numbers are decimal and may be preceded with a minus 
  471. Xsign. If the cursor is on a number, that one will be used. Otherwise the 
  472. Xnumber right of the cursor will be used.
  473. X
  474. XThe CTRL-A command is very useful in a macro. Example: How to make a 
  475. Xnumbered list.
  476. X
  477. X1. Create the first entry. The entry should start with a number.
  478. X2. qa        - start recording into buffer <a>
  479. X3. Y         - yank the entry
  480. X4. p         - put a copy of the entry below the first one
  481. X5. CTRL-A    - increment the number
  482. X6. q         - stop recording
  483. X7. <count>@a - repeat the yank, put and increment <count> times
  484. X
  485. X
  486. X<{motion}        Shift the {motion} lines one shiftwidth leftwards.
  487. X
  488. X<<            Shift [count] lines one shiftwidth leftwards.
  489. X
  490. X{visual}<        Shift the highlighted lines [count] shiftwidth
  491. X            leftwards (see the chapter on Visual mode). {not in
  492. X            Vi} 
  493. X
  494. X>{motion}        Shift {motion} lines one shiftwidth rightwards.
  495. X
  496. X>>            Shift [count] lines one shiftwidth rightwards.
  497. X
  498. X{visual}>        Shift the highlighted lines [count] shiftwidth
  499. X            rightwards (see the chapter on Visual mode). {not in
  500. X            Vi}
  501. X
  502. X:[range]<        Shift [range] lines left. Repeat '<' for multiple
  503. X            shifts.
  504. X
  505. X:[range]< {count}    Shift {count} lines left, starting with [range]
  506. X            (default current line, see 4.4.4). Repeat '<' for
  507. X            multiple shifts.
  508. X
  509. X:[range]le[ft] [indent]    left align lines in [range]. Sets the indent in the
  510. X            lines to [indent] (default 0). {not in Vi}
  511. X
  512. X:[range]>        Shift {count} [range] lines right. Repeat '>' for
  513. X            multiple shifts.
  514. X
  515. X:[range]> {count}    Shift {count} lines right, starting with [range]
  516. X            (default current line, see 4.4.4). Repeat '>' for
  517. X            multiple shifts.
  518. X
  519. XThe ">" and "<" commands are handy for changing the indent within programs. 
  520. XThe size of the white space which is inserted or deleted can be set with the 
  521. X'shiftwidth' option. Normally the 'shiftwidth' option is set to 8, but you 
  522. Xcan set it to e.g. 3 to make smaller indents. The shift leftwards stops when 
  523. Xthere is no indent. The shift right does not do anything with empty lines. 
  524. X
  525. XIf the 'shiftround' option is set, the indent is rounded to a multiple of 
  526. X'shiftwidth'.
  527. X
  528. XIf the 'smartindent' option is set, lines starting with <#> will not be
  529. Xshifted right.
  530. X
  531. XWhen the 'expandtab' option if off (this is the default) <TAB>s are used as 
  532. Xmuch as possible to make the indent. You can use ">><<" to replace an indent 
  533. Xmade out of spaces with the same indent made out of <TAB>s (and a few 
  534. Xspaces if necessary). If the 'expandtab' option is on, only spaces are 
  535. Xused. Then you can use ">><<" to replace <TAB>s in the indent by spaces.
  536. X
  537. XTo move a line several 'shiftwidth's use the visual mode or the ":"
  538. Xcommands. For example:
  539. X    Vjj4>        move three lines 4 indents to the right
  540. X    :<<<        move current line 3 indents to the left
  541. X    :>> 5        move 5 lines 2 indents to the right
  542. X
  543. X
  544. XQ{motion}        Format the lines that were moved over. The length of 
  545. X            each line will be restricted to the width set with 
  546. X            the 'textwidth' option. If the 'textwidth' option is
  547. X            0, all lines will be joined together. If the
  548. X            'autoindent' option is set, the indent of the first
  549. X            line is used for the following lines. The
  550. X            'formatprg' option can be set to the name of an
  551. X            external program, which will be used instead of the
  552. X            internal function. The 'textwidth' option will then
  553. X            not be used. {not in Vi}
  554. X
  555. X:[range]ce[nter] [width]
  556. X            Center lines in [range] between [width] columns
  557. X            (default 'textwidth' or 80 when 'textwidth' is 0).
  558. X            {not in Vi}
  559. X
  560. X:[range]ri[ght] [width]
  561. X            right align lines in [range] at [width] columns
  562. X            (default 'textwidth' or 80 when 'textwidth' is 0).
  563. X            {not in Vi}
  564. X
  565. X
  566. X11.3 Complex changes
  567. X
  568. X!{motion}{filter}    Filter {motion} text through the external program
  569. X            {filter}.
  570. X
  571. X!!{filter}        Filter [count] lines through the external program
  572. X            {filter}.
  573. X
  574. X{visual}!{filter}    Filter the highlighted lines through the external
  575. X            program {filter} (see the chapter on Visual mode).
  576. X            {not in Vi}
  577. X
  578. X:{range}![!]{filter} [!][arg]
  579. X            Filter {range} lines through the external program
  580. X            {filter}. The optional bangs are replaced with the
  581. X            latest given command. The optional [arg] is appended.
  582. X
  583. X={motion}        Filter {motion} lines through the external program 
  584. X            given with the 'equalprg' option (default: 
  585. X            "indent"). {Vi: when 'lisp' option is set, autoindent 
  586. X            {motion} lines}
  587. X
  588. X==            Filter [count] lines through the external program
  589. X            given with the 'equalprg' option (default: indent).
  590. X            {not in Vi}
  591. X
  592. X{visual}=        Filter the highlighted lines through the external
  593. X            program given with the 'equalprg' option (default:
  594. X            indent) (see the chapter on Visual mode). {not in
  595. X            Vi}
  596. X
  597. XA filter is a program that accepts text at standard input, changes it in some
  598. Xway, and sends it to standard output. The commands above can be used to send
  599. Xsome text through a filter. An example of a filter is "sort", which sorts 
  600. Xlines alphabetically. The "indent" program is used to pretty indent C 
  601. Xprograms (you need a version of indent that works like a filter, not all 
  602. Xversions do that). The shell, given with the 'shell' option, is used to 
  603. Xexecute the command (See also the 'shelltype' option).
  604. XThe filter commands can be redone with ".". There cannot be a comment (with
  605. X<">) after the ":!" command.
  606. X
  607. X
  608. X:[range]s[ubstitute]/{pattern}/{string}/[g][c][r] [count]
  609. X            For each line in [range] replace {pattern} by
  610. X            {string}. See below for the flags.
  611. X
  612. X:[range]s[ubstitute] [g][c][r] [count]
  613. X:[range]&[g][c][r] [count]
  614. X            Repeat last :substitute with same search pattern and
  615. X            substitute string. The flags may be different (see
  616. X            below).
  617. X
  618. X:[range]~[g][c][r] [count]
  619. X            Repeat last substitute with same substitute string
  620. X            but with last used search pattern. This is like
  621. X            "&r". See explanation for [r] below.
  622. X
  623. X&            Synonym for ":s//~/" (repeat last substitute).
  624. X
  625. XThe arguments that can be given to the substitute commands:
  626. X[g]    All occurrences in the line are replaced. Otherwise only the first
  627. X    occurrence in the line is replaced. If the 'edcompatible' option is
  628. X    set this flag is remembered and toggled each time it is used. It is
  629. X    reset when a new search pattern is given. If the 'gdefault' option
  630. X    is set, this flag is default on. Give the [g] to switch it on.
  631. X[c]    Each substitute has to be confirmed. The cursor is positioned on the
  632. X    matching string. You can type <y> to substitute, <n> to skip, <q> to
  633. X    quit substituting. If the 'edcompatible' option is set this flag is
  634. X    remembered and toggled each time it is used. It is reset when a new
  635. X    search pattern is given.
  636. X[r]    When the search pattern is empty use the previously used search
  637. X    pattern instead of the search pattern from the last substitute.
  638. X    If the last command that did a search was a substitute there is no
  639. X    effect. If the last command was another search command, like
  640. X    "/" or ":global", the pattern from that command is used.
  641. X[count] That many lines are are searched, starting with the last line number
  642. X    in [range] (default current line, see 4.4.4).
  643. X
  644. XIf the {pattern} for the substitute command is empty, the pattern from the
  645. Xlast substitute command is used. With the [r] flag the pattern from the last
  646. Xsubstitute or search command ("/", ":global" and the like) is used.
  647. X
  648. XInstead of the </> which surrounds the pattern and replacement string, you
  649. Xcan use any other character, but not an alphanumeric character, <"> or <|>
  650. Xor <#>. This is useful if you want to include a </> in the search pattern or
  651. Xreplacement string. Example: ":s+/+//+"
  652. X
  653. XFor the definition of a pattern see 6.5, "Pattern searches".
  654. X
  655. XSome characters in {string} have a special meaning:
  656. X
  657. Xmagic    nomagic      action
  658. X  &      \&      replaced by the whole matched pattern
  659. X \&       &      replaced by &
  660. X      \0      replaced by the whole matched pattern
  661. X      \1      replaced by the matched pattern in the first pair of ()
  662. X      \2      replaced by the matched pattern in the second pair of ()
  663. X      ..      ..
  664. X      \9      replaced by the matched pattern in the ninth pair of ()
  665. X  ~      \~      replaced by the {string} of the previous substitute
  666. X \~       ~      replaced by ~
  667. X      \u      next character made uppercase
  668. X      \U      following characters made uppercase
  669. X      \l      next character made lowercase
  670. X      \L      following characters made lowercase
  671. X      \e      end of /u, /U, /l and /L
  672. X      \E      end of /u, /U, /l and /L
  673. X      <CR>      split line in two at this point
  674. X  CTRL-V <CR>      insert a carriage-return (CTRL-M)
  675. X
  676. XExamples:
  677. X:s/a\|b/xxx\0xxx/g          modifies "a b"      in "xxxaxxx xxxbxxx"
  678. X:s/\([abc]\)\([efg]\)/\2\1/g  modifies "af fa bg" in "fa fa gb"
  679. X:s/abcde/abc^Mde/          modifies "abcde"    in "abc", "de" (two lines)
  680. X:s/$/^V^M/              modifies "abcde"      in "abcde^M"
  681. X
  682. XNote: To insert a ^M you have to type CTRL-V <CR>. To insert a ^V you have
  683. Xto type CTRL-V CTRL-V. So to insert the ^V^M in the last example you have to
  684. Xtype CTRL-V CTRL-V CTRL-V <CR>.
  685. X
  686. XBecause CTRL-V <CR> inserts a <CR>, it is impossible to insert a CTRL-V just
  687. Xin front of a line break. You will have to split it up in two parts:
  688. X    :s/foo/^Vxxxx/
  689. X    :s/xxxx/^M/
  690. X
  691. XWhen using parentheses in combination with <|>, like in \([ab]\)\|\([cd]\), 
  692. Xeither the first or second pattern in parentheses did not match, so either 
  693. X\1 or \2 is empty. Example:
  694. X:s/\([ab]\)\|\([cd]\)/\1x/g   modifies "a b c d"  in "ax bx x x"
  695. X
  696. X
  697. X    12. Copying and moving text
  698. X
  699. X"<a-zA-Z0-9.%:">    Use register <a-zA-Z0-9.%"> for next delete, yank or
  700. X            put (use uppercase character to append with delete
  701. X            and yank) (<.> only works with put).
  702. X
  703. X:di[splay]        Display the contents of numbered and named registers.
  704. X            {Vi: no such command}
  705. X
  706. X["x]y{motion}        Yank {motion} text [into register x].
  707. X
  708. X["x]yy            Yank [count] lines [into register x] (linewise).
  709. X
  710. X["x]Y            With 'noyankendofline' option: yank [count] lines 
  711. X            [into register x] (synonym for yy, linewise); with 
  712. X            'yankendofline' option: yank until end of line 
  713. X            (synonym for y$, not linewise).
  714. X
  715. X{visual}["x]y        Yank the highlighed text [into register x] (see the 
  716. X            chapter on Visual mode). {not in Vi}
  717. X
  718. X{visual}["x]Y        Yank the highlighted lines [into register x] (see the 
  719. X            chapter on Visual mode). {not in Vi}
  720. X
  721. X:[range]y[ank] [x]    Yank [range] lines [into register x].
  722. X
  723. X:[range]y[ank] [x] {count}
  724. X            Yank {count} lines, starting with last line number 
  725. X            in [range] (default: current line, see 4.4.4), [into 
  726. X            register x].
  727. X
  728. X["x]p            Put the text [from register x] after the cursor
  729. X[count]
  730. X            times. {Vi: no count}
  731. X
  732. X["x]P            Put the text [from register x] before the cursor
  733. X            [count] times. {Vi: no count}
  734. X
  735. X:[line]pu[t] [x]    Put the text [from register x] after [line] (default
  736. X            current line).
  737. X
  738. X:[line]pu[t]! [x]    Put the text [from register x] before [line] (default
  739. X            current line).
  740. X
  741. X["x]]p            like "p", but adjust the indent to the current line.
  742. X            {not in Vi}
  743. X
  744. X["x][p            like "P", but adjust the indent to the current line.
  745. X            {not in Vi}
  746. X
  747. XThese commands can be used to copy text from one place to another. This is 
  748. Xdone by first getting the text into a register with a yank, delete or change 
  749. Xcommand. The register can then be inserted with a put command. All registers 
  750. Xare kept when changing files. Thus you can also use this to move text from 
  751. Xone file to another (the CTRL-^ command is a quick way to toggle between two 
  752. Xfiles).
  753. X
  754. XThe put commands can be repeated with "." (except for :put) and undone. If the
  755. Xcommand that was used to get the text into the register was linewise, the 
  756. Xtext will be inserted below ("p") or above ("P") the line where the cursor
  757. Xis. Otherwise the text will be inserted after ("p") or before ("P") the
  758. Xcursor. With the ":put" command the text will always be inserted in the next
  759. Xline. You can exchange two characters with the command sequence "xp". You
  760. Xcan exchange two lines with the command sequence "ddp". You can exchange
  761. Xtwo words with the command sequence "deep" (start with the cursor in the
  762. Xblank space before the first word). The "']" or "`]" command can be used
  763. Xafter the put command to move the cursor to the end of the inserted text,
  764. X"'[" or "`[" to move the cursor to the start.
  765. X
  766. XIf the command that was used to get the text into the register used 
  767. Xblockwise Visual mode, the block of text will be inserted before ("P") or
  768. Xafter ("p") the cursor column, in the current and next lines. Vim will make
  769. Xthe whole block of text start in the same column. Thus the inserted text
  770. Xlooks the same as when it was yanked or deleted. Some <TAB> characters may
  771. Xbe replaced by spaces to make this happen. However, if the width of the
  772. Xblock is not a multiple of a <TAB> width and the text after the inserted
  773. Xblock contains <TAB>s, that text may be misaligned.
  774. X
  775. XThere are four types of registers: The unnamed register, 10 numbered
  776. Xregisters, 26 named registers and two read-only registers.
  777. X    The unnamed register is the register where all text deleted with     
  778. Xthe "d", "c", "s", "x" commands or copied with the yank "y" command is
  779. Xplaced, regardless of whether or not a specific register was used (e.g.
  780. X"xdd). The contents of this register are used by any put command (p or P)
  781. Xwhich does not specify a register. Additionally it can be accessed by the
  782. Xname <">. This means you have to type two double quotes. {Vi: register
  783. Xcontents lost when changing files, no <">}
  784. X    The numbered registers are filled with yank and delete commands. 
  785. XNumbered register <0> is filled with the last yank command, unless another 
  786. Xregister was specified with ["x]. Numbered register <1> is filled with the 
  787. Xtext that was deleted by each delete or change command, unless another 
  788. Xregister was specified or the text is less than one line (text deleted with
  789. X"x" or "dw" will not be put in a numbered register). The contents of
  790. Xregister <1> are put in <2>, <2> in <3>, and so forth. The contents of
  791. Xregister <9> are lost. {Vi: numbered register contents are lost when
  792. Xchanging files; register 0 does not exist}
  793. X    The named registers are only filled when you say so. They are named 
  794. X<a> to <z> normally. If you use an uppercase letter, the same registers as 
  795. Xwith the lower case letter is used, but the text is appended to the previous 
  796. Xregister contents. With a lower case letter the previous contents are lost.
  797. X    The read-only registers are <%>, <:> and <.>. They can only be used
  798. Xwith the commands "p", "P" and ":put". <.> contains the last inserted
  799. Xtext (the same as what is inserted with the insert mode commands CTRL-A and
  800. XCTRL-@). <%> contains the name of the current file. <:> contains the last
  801. Xcommand line, it can also be used with "@", "@:" repeats the last command
  802. Xline.
  803. X
  804. XIf you use a put command without specifying a register, the register that 
  805. Xwas last written to is used (this is also the contents of the unnamed
  806. Xregister). If you are confused, use the ":dis" command to find out what will
  807. Xbe put (all named and numbered registers are displayed; the unnamed register
  808. Xis labelled <">).
  809. X
  810. XThe next three commands always work on whole lines.
  811. X
  812. X:[range]co[py] {address}
  813. X            Copy the lines given by [range] to below the line
  814. X            given by {address}.
  815. X
  816. X:t            Synonym for copy.
  817. X
  818. X:[range]m[ove] {address}
  819. X            Move the lines given by [range] to below the line
  820. X            given by {address}.
  821. X
  822. X
  823. X    13. Visual mode
  824. X
  825. XVisual mode is a flexible and easy way to select a piece of text for an 
  826. Xoperator. It is the only way to select a block of text.
  827. X
  828. Xv            start/stop Visual mode per character. {not in Vi}
  829. X
  830. XV            start/stop Visual mode linewise. {not in Vi}
  831. X
  832. XCTRL-V            start/stop Visual mode blockwise. {not in Vi}
  833. X
  834. Xo            go to Other end of highlighted text: The current
  835. X            cursor position becomes the start of the highlighted
  836. X            text and the cursor is moved to the Other end of the
  837. X            highlighted text. {not in Vi} 
  838. X
  839. XTo apply an operator on a piece of text:
  840. X    1. mark the start of the text with "v", "V" or CTRL-V
  841. X        The character under the cursor will be used as the start.
  842. X    2. move to the end of the text
  843. X        The text from the start of the Visual mode up to and
  844. X        including the character under the cursor is highlighted.
  845. X    3. hit an operator
  846. X        The highlighted characters will be operated upon.
  847. X
  848. XThe 'highlight' option can be used to set the display mode to use for
  849. Xhighlighting in Visual mode.
  850. X
  851. XThe highlighted text includes the character under the cursor. On terminals
  852. Xwhere it is possible to make the cursor invisible the cursor position is
  853. Xalso highlighted. On terminals where this is not possible the cursor is
  854. Xdisplayed normally. If your cursor cannot be made invisible and you want Vim
  855. Xto highlight the character under the cursor anyway, you could set the 't_cv'
  856. Xand 't_ci' options to something harmless, for example:
  857. X        :set t_cv=^[^[ t_ci=^[^[
  858. X
  859. XWith "v" the text before the start position and after the end position will 
  860. Xnot be highlighted. However, All uppercase and non-alpha operators, except 
  861. X"~", will work on whole lines anyway. See the list of operators below.
  862. X
  863. XWith CTRL-V (blockwise Visual mode) the highlighted text will be a rectangle
  864. Xbetween start position and the cursor. However, some operators work on whole
  865. Xlines anyway (see the list below). The change and substitute operators will
  866. Xdelete the highlighted text and then start insertion at the top left
  867. Xposition. 
  868. X
  869. XWhen the "$" command is used with blockwise Visual mode, the right end of the 
  870. Xhighlighted text will be determined by the longest highlighted line. This
  871. Xstops when a motion command is used that does not move straight up or down.
  872. X
  873. XIf you use "v", "V", CTRL-V, ESC or any command that does a jump to another
  874. Xwindow while in Visual mode, the highlighting stops and no text is affected.
  875. XIf you hit CTRL-Z the highlighting stops and the editor is suspended or a new
  876. Xshell is started.
  877. X
  878. XFor moving the end of the block many commands can be used, but you cannot 
  879. Xuse Ex commands, commands that make changes or abandon the file. Commands 
  880. X(starting with) ".pPiIaAO&", CTRL_^, "ZZ", CTRL-], CTRL-T, CTRL-R, CTRL-I 
  881. Xand CTRL-O cause a beep and Visual mode continues. 
  882. X
  883. XIf the "v", "V" or CTRL-V is preceded with a count, the previously
  884. Xhighlighted area is used for a start. You can then move the end of the
  885. Xhighlighted area and give an operator. The type of the old area is used
  886. X(character, line or blockwise).
  887. X- Linewise Visual mode: The number of lines is multiplied with the count.
  888. X- Blockwise Visual mode: The number of lines and columns is multiplied with
  889. X  the count.
  890. X- Normal Visual mode within one line: The number of characters is multiplied
  891. X  with the count.
  892. X- Normal Visual mode with several lines: The number of lines is multiplied
  893. X  with the count, in the last line the same number of characters is used as
  894. X  in the last line in the previously highlighted area.
  895. XThe start of the text is the Cursor position. If the "$" command was used as 
  896. Xone of the last commands to extend the highlighted text, the area will be
  897. Xextended to the rightmost column of the longest line.
  898. X
  899. XThe operators that can be used are:
  900. X    ~    switch case
  901. X    d    delete
  902. X    c    change
  903. X    y    yank
  904. X    >    shift right (1)(*)
  905. X    <    shift left (1)(*)
  906. X    !    filter through external command (1)
  907. X    =    filter through 'equalprg' option command (1)
  908. X    Q    format lines to 'textwidth' length (1)
  909. X
  910. XAdditionally the following commands can be used:
  911. X    :    start ex command for highlighted lines (1)
  912. X    r    change
  913. X    s    change
  914. X    C    change (2)
  915. X    R    change (2)
  916. X    S    change (2)
  917. X    x    delete
  918. X    D    delete (2)
  919. X    X    delete (2)
  920. X    Y    yank (2)
  921. X    J    join (1)
  922. X    U    make uppercase
  923. X    u    make lowercase
  924. X
  925. X(1): always whole lines
  926. X(2): whole lines when not using CTRL-V
  927. X(*): in a future a blockwise shift will move the block only, not whole
  928. X     lines.
  929. X
  930. XIf you want to give a register name using the """ command, do this just before 
  931. Xtyping the operator character: "v{move around}"xd".
  932. X
  933. XIf you want to give a count to the command, do this just before typing the
  934. Xoperator character: "v{move around}3>" (move lines 3 indents to the right).
  935. X
  936. XWhen repeating a Visual mode operator, the operator will be applied to the
  937. Xsame amount of text as the last time:
  938. X- Linewise Visual mode: The same number of lines.
  939. X- Blockwise Visual mode: The same number of lines and columns.
  940. X- Normal Visual mode within one line: The same number of characters.
  941. X- Normal Visual mode with several lines: The same number of lines, in the
  942. X  last line the same number of characters as in the last line the last time.
  943. XThe start of the text is the Cursor position. If the "$" command was used as 
  944. Xone of the last commands to extend the highlighted text, the repeating will
  945. Xbe applied up to the rightmost column of the longest line.
  946. X
  947. X
  948. X    14. Various commands
  949. X
  950. XCTRL-L            Clear and redraw the screen.
  951. X
  952. XCTRL-Z            On Unix systems: Suspend Vim. On other systems: 
  953. X            start a new shell (like ":sh").
  954. X
  955. X<HELP>        or
  956. X:h[elp]            Show the help file page by page. The help file name 
  957. X            can be set with the 'helpfile' option. Type an index
  958. X            character to go directly to a page. Type <SPACE> or
  959. X            CTRL-F (with MSDOS: page-down) to go one page
  960. X            forward. Type <b> or CTRL-B (with MSDOS: page-up) to
  961. X            go one page back. Type <a> to go back to the index.
  962. X            Type <CR> to get out of the help screen. {Vi: no
  963. X            help}
  964. X
  965. X<DEL>            When entering a number: remove the last digit.
  966. X
  967. X:[range]p[rint]        Print [range] lines (default current line).
  968. X
  969. X:[range]p[rint] {count}
  970. X            Print {count} lines, starting with [range] (default
  971. X            current line, see 4.4.4).
  972. X
  973. X:[range]l[ist] [count]
  974. X            Same as :print, but display unprintable characters
  975. X            with <^>.
  976. X
  977. X:[range]nu[mber] [count]
  978. X            Same as :print, but precede each line with its line
  979. X            number.
  980. X
  981. X:[range]# [count]    synonym for :number.
  982. X
  983. X:=            Print the line number.
  984. X
  985. X:sh[ell]        Escape to a shell (name from 'shell' option).
  986. X
  987. X:![!]{cmd} [!][arg]    Execute {cmd} with the shell. The optional bangs are
  988. X            replaced with the previously given command. The 
  989. X            optional [arg] is appended. See also the 'shell' and 
  990. X            'shelltype' option.
  991. X
  992. X:ve[rsion]        Print the version number of the editor. If the
  993. X            compiler used understands "__DATE__" the compilation
  994. X            date is mentioned. Otherwise a fixed release-date is
  995. X            shown.
  996. X
  997. XK            Run a program to lookup the identifier under the 
  998. X            cursor. The name of the program is given with the 
  999. X            'keywordprg' (kp) option (default is "ref"). The
  1000. X            identifier is formed of letters, numbers and the
  1001. X            underscore. The identifier under or right of the
  1002. X            cursor is used. The same can be done with the
  1003. X            command
  1004. X                ":!{program} {identifier}". 
  1005. X            There is an example of a program to use in the tools
  1006. X            directory of Vim. It is called 'ref' and does a
  1007. X            simple spelling check. {not in Vi}
  1008. X
  1009. X[N]gs
  1010. X:[N]sleep [N]        Do nothing for [N] seconds. Can be interrupted with
  1011. X            CTRL-C (CTRL-break on MSDOS). "gs" stands for "goto
  1012. X            sleep". {not in Vi}
  1013. X
  1014. X
  1015. X    15. Repeating commands
  1016. X
  1017. X15.1 Single repeats
  1018. X
  1019. X.            Repeat last change with count replaced by [count].
  1020. X
  1021. XSimple changes can be repeated with the "." command. Without a count, the 
  1022. Xcount of the last change is used. If you enter a count, it will replace the 
  1023. Xlast one. If the last change included a specification of a numbered 
  1024. Xregister, the register number will be incremented. See the section on undo 
  1025. Xand redo for an example how to use this.
  1026. X
  1027. X
  1028. X15.2 Multiple repeats
  1029. X
  1030. X:[range]g[lobal]/{pattern}/[cmd]
  1031. X            Execute the Ex command [cmd] (default ":p") on the
  1032. X            lines within [range] where {pattern} matches.
  1033. X
  1034. X:[range]g[lobal]!/{pattern}/[cmd]
  1035. X            Execute the Ex command [cmd] (default ":p") on the
  1036. X            lines within [range] where {pattern} does NOT match.
  1037. X
  1038. X:[range]v[global]/{pattern}/[cmd]
  1039. X            Same as :g!.
  1040. X
  1041. XThe global commands work by first scanning through the [range] lines and
  1042. Xmarking each line where a match occurs. In a second scan the [cmd] is 
  1043. Xexecuted for each marked line with its line number prepended. If a line is 
  1044. Xchanged or deleted its mark disappears. The default for [range] is the whole 
  1045. Xbuffer (1,$). Use "CTRL-C" to interrupt the command. If an error message is
  1046. Xgiven for a line global aborts.
  1047. X
  1048. XTo repeat a non-Ex command, you will have to put the command in a file and 
  1049. Xuse "source!". For example:
  1050. X    :g/pat/so! scriptfile
  1051. XMake sure that the scriptfile ends with a whole command, otherwise Vim will 
  1052. Xwait for you to type the rest of the command for each match. The screen will 
  1053. Xnot have been updated, so you don't know what you are doing.
  1054. X    
  1055. XThe undo/redo command will undo/redo the whole global command at once.
  1056. X
  1057. X
  1058. X15.3 Complex repeats
  1059. X
  1060. Xq<0-9a-zA-Z">        Record typed characters into register <0-9a-zA-Z">
  1061. X            (uppercase to append). The 'q' that stops recording
  1062. X            is also stored in the register. The 'q' command is
  1063. X            disabled while executing a register. (Implementation
  1064. X            note: This was done because the 'q' command can be
  1065. X            the result of mapping). {Vi: no recording}
  1066. X
  1067. Xq            Stops recording. {Vi: no recording}
  1068. X
  1069. X@<0-9a-z">        Execute the contents of register <0-9a-z"> [count]
  1070. X            times. {Vi: only named registers}
  1071. X
  1072. X@:            Repeat last command line [count] times.
  1073. X
  1074. X@@            Repeat the previous @<0-9a-z":> [count] times.
  1075. X
  1076. X:[addr]@<0-9a-z">    Execute the contents of register <0-9a-z"> as
  1077. X            an Ex command. First set cursor at line [addr]
  1078. X            (default is current line). {Vi: only in some
  1079. X            versions}
  1080. X
  1081. X:[addr]@:        Repeat last command line [count] times. First set
  1082. X            cursor at line [addr] (default is current line).
  1083. X            {Vi: only in some versions}
  1084. X
  1085. X:[addr]@@        Repeat the previous :@<0-9a-z">. First set cursor at
  1086. X            line [addr] (default is current line). {Vi: only in
  1087. X            some versions}
  1088. X
  1089. X:so[urce] {file}    Read Ex commands from {file}.
  1090. X
  1091. X:so[urce]! {file}    Read Vim commands from {file}. {not in Vi}
  1092. X
  1093. XAll commands and command sequences can be repeated by putting them in a named
  1094. Xregister and then executing it. There are two ways to get the commands in the
  1095. Xregister:
  1096. X- Use the record command "q". You type the commands once, and while they are
  1097. X  being executed they are stored in a register. Easy, because you can see 
  1098. X  what you are doing. If you make a mistake, 'put' the register into the 
  1099. X  file, edit the command sequence, and then delete it into the register 
  1100. X  again. You can continue recording by appending to the register (use an 
  1101. X  uppercase letter).
  1102. X- Delete or yank the command sequence into the register.
  1103. X
  1104. XOften used command sequences can be put under a function key with the ':map'
  1105. Xcommand.
  1106. X
  1107. XAn alternative is to put the commands in a file, and execute them with the
  1108. X':source!' command. Useful for long command sequences. Can be combined with 
  1109. Xthe ':map' command to put complicated commands under a function key.
  1110. X
  1111. XThe ':source' command reads Ex commands from a file line by line. You will 
  1112. Xhave to type any needed keyboard input. The ':source!' command reads from a 
  1113. Xscript file character by character, interpreting each character as if you 
  1114. Xtyped it.
  1115. X
  1116. XExample: When you give the ":!ls" command you are asked to "hit return to
  1117. Xcontinue". If you ':source' a file with the line "!ls" in it, you will have 
  1118. Xto type the return yourself. But if you ':source!' a file with the line 
  1119. X":!ls" in it, the next characters from that file are read until a <CR> is 
  1120. Xfound. You will not have to type <CR> yourself, unless ":!ls" was the last 
  1121. Xline in the file.
  1122. X
  1123. XIt is possible to put ':source[!]' commands in the script file, so you can 
  1124. Xmake a top-down hierarchy of script files. The ':source' command can be 
  1125. Xnested as deep as the number of files that can be opened at one time (about 
  1126. X15). The ':source!' command can be nested up to 15 levels deep.
  1127. X
  1128. XIn script files terminal-dependent key codes are represented by 
  1129. Xterminal-independent single character codes. In the MSDOS version the values
  1130. Xare 48 (0x30) higher. Any of these codes can be entered with CTRL-V followed
  1131. Xby the three digit decimal code.
  1132. X
  1133. X    code    hex    meaning
  1134. X
  1135. X    128    0x80    up-arrow
  1136. X    129    0x81    down-arrow
  1137. X    130    0x82    left-arrow
  1138. X    131    0x83    right-arrow
  1139. X    132    0x84    shift up-arrow
  1140. X    133    0x85    shift down-arrow
  1141. X    134    0x86    shift left-arrow
  1142. X    135    0x87    shift right-arrow
  1143. X
  1144. X    136    0x88    function key 1
  1145. X    137    0x89    function key 2
  1146. X    138    0x8a    function key 3
  1147. X    139    0x8b    function key 4
  1148. X    140    0x8c    function key 5
  1149. X    141    0x8d    function key 6
  1150. X    142    0x8e    function key 7
  1151. X    143    0x8f    function key 8
  1152. X    144    0x90    function key 9
  1153. X    145    0x91    function key 10
  1154. X
  1155. X    146    0x92    shifted function key 1
  1156. X    147    0x93    shifted function key 2
  1157. X    148    0x94    shifted function key 3
  1158. X    149    0x95    shifted function key 4
  1159. X    150    0x96    shifted function key 5
  1160. X    151    0x97    shifted function key 6
  1161. X    152    0x98    shifted function key 7
  1162. X    153    0x99    shifted function key 8
  1163. X    154    0x9a    shifted function key 9
  1164. X    155    0x9b    shifted function key 10
  1165. X
  1166. X    156    0x9c    help key
  1167. X    157    0x9d    undo key
  1168. X    158    0x9e    special-function key follows (MSDOS)
  1169. X    159    0x9f    CTRL-@
  1170. X
  1171. X
  1172. X    16. Undo and redo
  1173. X
  1174. X<UNDO>        or
  1175. Xu            Undo [count] changes. {Vi: only one level}
  1176. X
  1177. X:u[ndo]            Undo one change. {Vi: only one level}
  1178. X
  1179. XCTRL-R            Redo [count] changes which were undone. {Vi: redraw 
  1180. X            screen}
  1181. X
  1182. X:red[o]            Redo one change which was undone. {Vi: no redo}
  1183. X
  1184. XU            Undo all latest changes on one line. {Vi: while not
  1185. X            moved off of it}
  1186. X
  1187. XThe last changes are remembered. You can go back in time with the "u" 
  1188. Xcommand. You can then go forward again with the 'CTRL-R' command. If you 
  1189. Xmake a new change after the "u" command, the 'CTRL-R' will not be possible 
  1190. Xanymore. The number of changes that are remembered is set with the 
  1191. X'undolevels' option. If it is zero, the old fashioned Vi undo is present: 
  1192. Xone level of undo and undo undoes itself. If it is negative no undo is
  1193. Xpossible. Use this if you are running out of memory.
  1194. X
  1195. XThe "U" command is treated by undo/redo just like any other command. Thus a 
  1196. X"u" command undos a "U" command and a 'CTRL-R' command redoes it again. When 
  1197. Xmixing "U", "u" and 'CTRL-R' you will notice that the "U" command will 
  1198. Xrestore the situation of a line to before the previous "U" command. This may 
  1199. Xbe confusing. Try it out to get used to it.
  1200. X
  1201. XWhen all changes have been undone the buffer is not considered to be changed.
  1202. XVim can then be exit with ":q" instead of ":q!". {this is not in Vi}
  1203. X
  1204. XThe numbered registers can also be used for undoing deletes. Each time you 
  1205. Xdelete text, it is put into register "1. The contents of register "1 are 
  1206. Xshifted to "2, etc. The contents of register "9 are lost. You can now get
  1207. Xback the most recent deleted text with the put command: '"1P'. (also, if the
  1208. Xdeleted text was the result of the last delete or copy operation, 'P' or 'p'
  1209. Xalso works as this puts the contents of the unnamed register). You can get
  1210. Xback the text of three deletes ago with '"3P'.
  1211. X
  1212. XIf you want to get back more than one part of deleted text, you can use a
  1213. Xspecial feature of the repeat command ".". It will increase the number of the
  1214. Xregister used. So if you first do ""1P", the following "." will result in a
  1215. X'"2P'. Repeating this will result in all numbered registers being inserted.
  1216. X
  1217. XExample:    If you deleted text with 'dd....' it can be restored with
  1218. X        '"1P....'.
  1219. X
  1220. XIf you don't know in which register the deleted text is, you can use the
  1221. X:display command. An alternative is to try the first register with '"1P', and
  1222. Xif it is not what you want do 'u.'. This will remove the contents of the
  1223. Xfirst put, and repeat the put command for the second register. Repeat the
  1224. X'u.' until you got what you want.
  1225. X
  1226. X
  1227. X    17. Key mapping
  1228. X
  1229. X:map {lhs} {rhs}    Map the key sequence {lhs} to {rhs} in Command mode.
  1230. X
  1231. X:map! {lhs} {rhs}    Map the key sequence {lhs} to {rhs} in Insert and
  1232. END_OF_FILE
  1233.   if test 48444 -ne `wc -c <'vim/doc/reference.doc.C'`; then
  1234.     echo shar: \"'vim/doc/reference.doc.C'\" unpacked with wrong size!
  1235.   elif test -f 'vim/doc/reference.doc.A' && test -f 'vim/doc/reference.doc.B' && test -f 'vim/doc/reference.doc.D'; then
  1236.     echo shar: Combining  \"'vim/doc/reference.doc'\" \(210836 characters\)
  1237.     cat 'vim/doc/reference.doc.A' 'vim/doc/reference.doc.B' 'vim/doc/reference.doc.C' 'vim/doc/reference.doc.D' > 'vim/doc/reference.doc'
  1238.     if test 210836 -ne `wc -c <'vim/doc/reference.doc'`; then
  1239.       echo shar: \"'vim/doc/reference.doc'\" combined with wrong size!
  1240.     else
  1241.       rm vim/doc/reference.doc.A vim/doc/reference.doc.B vim/doc/reference.doc.C vim/doc/reference.doc.D
  1242.     fi
  1243.   fi
  1244.   # end of 'vim/doc/reference.doc.C'
  1245. fi
  1246. if test -f 'vim/macros/maze/maze_mac.UU' -a "${1}" != "-c" ; then 
  1247.   echo shar: Will not clobber existing file \"'vim/macros/maze/maze_mac.UU'\"
  1248. else
  1249.   echo shar: Extracting \"'vim/macros/maze/maze_mac.UU'\" \(16803 characters\)
  1250.   sed "s/^X//" >'vim/macros/maze/maze_mac.UU' <<'END_OF_FILE'
  1251. Xbegin 644 vim/macros/maze/maze_mac
  1252. XM(B!4:&5S92!M86-R;W,@)W-O;'9E)R!A;GD@;6%Z92!P<F]D=6-E9"!B>2!T
  1253. XM:&4@82UM87IE+6EN9R!M87IE+F,@<')O9W)A;2X*(B *(B!&:7)S="P@82!B
  1254. XM:70@;V8@;6%Z92!T:&5O<GDN"B(@268@>6]U('=E<F4@<'5T(&EN=&\@82!M
  1255. XM87IE+"!A(&=U87)A;G1E960@;65T:&]D(&]F(&9I;F1I;F<@>6]U<B!W87D*
  1256. XM(B!O=70@;V8@=&AE(&UA>F4@:7,@=&\@<'5T('EO=7(@;&5F="!H86YD(&]N
  1257. XM=&\@82!W86QL(&%N9"!J=7-T(&ME97 @=V%L:VEN9RP*(B!N979E<B!T86MI
  1258. XM;F<@>6]U<B!H86YD(&]F9B!T:&4@=V%L;"X@5&AI<R!T96-H;FEQ=64@:7,@
  1259. XM;VYL>2!G=6%R86YT965D('1O"B(@=V]R:R!I9B!T:&4@;6%Z92!D;V5S(&YO
  1260. XM="!H879E(&%N>2 G:7-L86YD<R<L(&]R(&EF('1H92 G97AI="<@:7,@;VX@
  1261. XM=&AE"B(@<V%M92!I<VQA;F0@87,@>6]U<B!S=&%R=&EN9R!P;VEN="X@5&AE
  1262. XM<V4@8V]N9&ET:6]N<R!H;VQD(&9O<B!T:&4@;6%Z97,*(B!U;F1E<B!C;VYS
  1263. XM:61E<F%T:6]N+@HB( HB($%S<W5M:6YG('1H870@=&AE(&UA>F4@:7,@;6%D
  1264. XM92!U<"!O9B!H;W)I>F]N=&%L(&%N9"!V97)T:6-A;"!W86QL<R!S<&%C960*
  1265. XM(B!O;F4@<W1E<"!A<&%R="!A;F0@=&AA="!Y;W4@8V%N(&UO=F4@96ET:&5R
  1266. XM(&YO<G1H+"!S;W5T:"P@96%S="!O<B!W97-T+ HB('1H96X@>6]U(&-A;B!A
  1267. XM=71O;6%T92!T:&ES('!R;V-E9'5R92!B>2!C87)R>6EN9R!O=70@=&AE(&9O
  1268. XM;&QO=VEN9R!S=&5P<RX*(B *(B Q+B!0=70@>6]U<G-E;&8@<V]M97=H97)E
  1269. XM(&EN('1H92!M87IE(&YE87(@82!W86QL+@HB(#(N($-H96-K(&EF('EO=2!H
  1270. XM879E(&$@=V%L;"!O;B!Y;W5R(&QE9G0N($EF('-O+"!G;R!T;R!S=&5P(#0N
  1271. XM"B(@,RX@5&AE<F4@:7,@;F\@=V%L;"!O;B!Y;W5R(&QE9G0L('-O('1U<FX@
  1272. XM;VX@=&AE('-P;W0@=&\@>6]U<B!L969T(&%N9"!S=&5P"B(@(" @9F]R=V%R
  1273. XM9"!B>2!O;F4@<W1E<"!A;F0@<F5P96%T('-T97 @,BX*(B T+B!#:&5C:R!W
  1274. XM:&%T(&ES(&1I<F5C=&QY(&EN(&9R;VYT(&]F('EO=2X@268@:70@:7,@82!W
  1275. XM86QL+"!T=7)N(&]N('1H90HB(" @('-P;W0@=&\@>6]U<B!R:6=H="!B>2 Y
  1276. XM,"!D96=R965S(&%N9"!R97!E870@<W1E<" T+@HB(#4N(%1H97)E(&ES(&YO
  1277. XM('=A;&P@:6X@9G)O;G0@;V8@>6]U+"!S;R!S=&5P(&9O<G=A<F0@;VYE('-T
  1278. XM97 @86YD"B(@(" @9V\@=&\@<W1E<" R+@HB( HB($EN('1H:7,@=V%Y('EO
  1279. XM=2!W:6QL(&-O=F5R(&%L;"!T:&4@8V]R<FED;W)S(&]F('1H92!M87IE("AU
  1280. XM;G1I;"!Y;W4@9V5T(&)A8VL*(B!T;R!W:&5R92!Y;W4@<W1A<G1E9"!F<F]M
  1281. XM+"!I9B!Y;W4@9&\@;F]T('-T;W I+@HB( HB($)Y(&5X86UI;FEN9R!A(&UA
  1282. XM>F4@<')O9'5C960@8GD@=&AE(&UA>F4N8R!P<F]G<F%M('EO=2!W:6QL('-E
  1283. XM92!T:&%T( HB(&5A8V@@<W%U87)E(&]F('1H92!M87IE(&ES(&]N92!C:&%R
  1284. XM86-T97(@:&EG:"!A;F0@='=O(&-H87)A8W1E<G,@=VED92X*(B!4;R!G;R!N
  1285. XM;W)T:"!O<B!S;W5T:"P@>6]U(&UO=F4@8GD@82!O;F4@8VAA<F%C=&5R('-T
  1286. XM97 L(&)U="!T;R!M;W9E(&5A<W0@;W(*(B!W97-T('EO=2!M;W9E(&)Y(&$@
  1287. XM='=O(&-H87)A8W1E<B!S=&5P+B!!;'-O(&YO=&4@=&AA="!I;B!A;GD@<&]S
  1288. XM:71I;VX*(B!T:&5R92!A<F4@9F]U<B!P;&%C97,@=VAE<F4@=V%L;',@8V]U
  1289. XM;&0@8F4@<'5T("T@=&\@=&AE(&YO<G1H+"!T;R!T:&4@<V]U=&@L"B(@=&\@
  1290. XM=&AE(&5A<W0@86YD('1O('1H92!W97-T+@HB($$@=V%L;"!E>&ES=',@=&\@
  1291. XM=&AE(&YO<G1H(&]F('EO=2!I9B!T:&4@8VAA<F%C=&5R('1O('1H92!N;W)T
  1292. XM:"!O9@HB('EO=2!I<R!A(%\@*&]T:&5R=VES92!I="!I<R!A('-P86-E*2X*
  1293. XM(B!!('=A;&P@97AI<W1S('1O('1H92!E87-T(&]F('EO=2!I9B!T:&4@8VAA
  1294. XM<F%C=&5R('1O('1H92!E87-T(&]F('EO=0HB(&ES(&$@?" H;W1H97)W:7-E
  1295. XM(&ET(&ES(&$@+BDN"B(@02!W86QL(&5X:7-T<R!T;R!T:&4@=V5S="!O9B!Y
  1296. XM;W4@:68@=&AE(&-H87)A8W1E<B!T;R!T:&4@=V5S="!O9B!Y;W4*(B!I<R!A
  1297. XM('P@*&]T:&5R=VES92!I="!I<R!A("XI+@HB($$@=V%L;"!E>&ES=',@=&\@
  1298. XM=&AE('-O=71H(&]F('EO=2!I9B!T:&4@8VAA<F%C=&5R('=H97)E('EO=2!A
  1299. XM<F4*(B!I<R!A(%\@*&]T:&5R=VES92!I="!I<R!A('-P86-E*2X*(B *(B!.
  1300. XM;W1E('1H92!D:69F97)E;F-E(&9O<B!D:7)E8W1I;VX@<V]U=&@L('=H97)E
  1301. XM('=E(&UU<W0@97AA;6EN92!T:&4@8VAA<F%C=&5R"B(@=VAE<F4@=&AE(&-U
  1302. XM<G-O<B!I<R!R871H97(@=&AA;B!A;B!A9&IA8V5N="!C96QL+@HB( HB($EF
  1303. XM('EO=2!W97)E(&EM<&QE;65N=&EN9R!T:&4@86)O=F4@<')O8V5D=7)E(&ES
  1304. XM(&$@;F]R;6%L(&-O;7!U=&5R(&QA;F=U86=E"B(@>6]U(&-O=6QD('5S92!A
  1305. XM(&QO;W @=VET:"!I9B!S=&%T96UE;G1S(&%N9"!C;VYT:6YU92!S=&%T96UE
  1306. XM;G1S+" *(B!(;W=E=F5R+"!T:&5S92!C;VYS=')U8W1S(&%R92!N;W0@879A
  1307. XM:6QA8FQE(&EN('9I(&UA8W)O<R!S;R!)(&AA=F4@=7-E9 HB(&$@<W1A=&4@
  1308. XM;6%C:&EN92!W:71H(#@@<W1A=&5S+B!%86-H('-T871E('-I9VYI9FEE<R!T
  1309. XM:&4@9&ER96-T:6]N('EO=0HB(&%R92!G;VEN9R!I;B!A;F0@=VAE=&AE<B!O
  1310. XM<B!N;W0@>6]U(&AA=F4@8VAE8VME9"!I9B!T:&5R92!I<R!A('=A;&P@;VX*
  1311. XM(B!Y;W5R(&QE9G0N"B(@"B(@5&AE('1R86YS:71I;VX@9G)O;2!S=&%T92!T
  1312. XM;R!S=&%T92!A;F0@=&AE(&%C=&EO;G,@=&%K96X@;VX@96%C:"!T<F%N<VET
  1313. XM:6]N"B(@87)E(&=I=F5N(&EN('1H92!S=&%T92!T86)L92!B96QO=RX*(B!4
  1314. XM:&4@;F%M97,@;V8@=&AE('-T871E<R!A<F4@3C$L($XR+"!3,2P@4S(L($4Q
  1315. XM+"!%,BP@5S$L(%<R+"!W:&5R92!E86-H(&QE='1E<@HB('-T86YD<R!F;W(@
  1316. XM82!D:7)E8W1I;VX@;V8@=&AE(&-O;7!A<W,L('1H92!N=6UB97(@,2!I;F1I
  1317. XM8V%T97,@=&AA="!T:&4@=V4*(B!H879E(&YO="!Y970@8VAE8VME9"!T;R!S
  1318. XM964@:68@=&AE<F4@:7,@82!W86QL(&]N(&]U<B!L969T(&%N9"!T:&4@;G5M
  1319. XM8F5R(#(*(B!I;F1I8V%T97,@=&AA="!W92!H879E(&-H96-K960@86YD('1H
  1320. XM97)E(&ES(&$@=V%L;"!O;B!O=7(@;&5F="X*(B *(B!&;W(@96%C:"!S=&%T
  1321. XM92!W92!M=7-T(&-O;G-I9&5R('1H92!E>&ES=&5N8V4@;W(@;F]T(&]F(&$@
  1322. XM=V%L;"!I;B!A"B(@<&%R=&EC=6QA<B!D:7)E8W1I;VXN(%1H:7,@9&ER96-T
  1323. XM:6]N(&ES(&=I=F5N(&EN('1H92!F;VQL;W=I;F<@=&%B;&4N"B(@"B(@3F5X
  1324. XM=$-H87(@=&%B;&4Z"B(@<W1A=&4@(" @(" @(&1I<F5C=&EO;B @(" @("!V
  1325. XM:2!C;VUM86YD<PHB("!.,2 @(" @(" @(" @(" @5R @(" @(" @(" @(" @
  1326. XM(&A&"B(@($XR(" @(" @(" @(" @("!.(" @(" @(" @(" @(" @:T8*(B @
  1327. XM4S$@(" @(" @(" @(" @($4@(" @(" @(" @(" @("!L1@HB("!3,B @(" @
  1328. XM(" @(" @(" @4R @(" @(" @(" @(" @($8*(B @13$@(" @(" @(" @(" @
  1329. XM($X@(" @(" @(" @(" @("!K1@HB("!%,B @(" @(" @(" @(" @12 @(" @
  1330. XM(" @(" @(" @(&Q&"B(@(%<Q(" @(" @(" @(" @("!3(" @(" @(" @(" @
  1331. XM(" @1@HB("!7,B @(" @(" @(" @(" @5R @(" @(" @(" @(" @(&A&"B(@
  1332. XM"B(@=VAE<F4@1B!I<R!A(&UA8W)O('=H:6-H('EA;FMS('1H92!C:&%R86-T
  1333. XM97(@=6YD97(@=&AE(&-U<G-O<B!I;G1O"B(@=&AE($YE>'1#:&%R(')E9VES
  1334. XM=&5R("AN*2X*(B *(B!3=&%T92!T86)L93H*(B!);B!T:&4@)W9I(&-O;6UA
  1335. XM;F1S)R!C;VQU;6X@:7,@9VEV96X@=&AE(&%C=&EO;G,@=&\@8V%R<GD@;W5T
  1336. XM('=H96X@:6X*(B!T:&ES('-T871E(&%N9"!T:&4@3F5X=$-H87(@:7,@87,@
  1337. XM9VEV96XN(%1H92!C;VUM86YD<R!K+"!J+"!L;"P@:&@@;6]V90HB('1H92!C
  1338. XM=7)R96YT('!O<VET:6]N(&YO<G1H+"!S;W5T:"P@96%S="!A;F0@=V5S="!R
  1339. XM97-P96-T:79E;'DN(%1H90HB(&-O;6UA;F0@;6T@:7,@=7-E9"!A<R!A(&YO
  1340. XM+6]P(&-O;6UA;F0N"B(@26X@=&AE("=N97AT('-T871E)R!C;VQU;6X@:7,@
  1341. XM9VEV96X@=&AE(&YE=R!S=&%T92!O9B!T:&4@;6%C:&EN92!A9G1E<@HB('1H
  1342. XM92!A8W1I;VX@:7,@8V%R<FEE9"!O=70N"B(@"B(@8W5R<F5N="!S=&%T92 @
  1343. XM(" @(" @3F5X=$-H87(@(" @=FD@8V]M;6%N9',@(&YE>'0@<W1A=&4*(B @
  1344. XM(" @($XQ(" @(" @(" @(" @(" @(" N(" @(" @(" @(" @:&@@(" @(" @
  1345. XM(" @5S$*(B @(" @($XQ(" @(" @(" @(" @(" @("!\(" @(" @(" @(" @
  1346. XM;6T@(" @(" @(" @3C(*(B @(" @($XR(" @(" @(" @(" @(" @("!?(" @
  1347. XM(" @(" @(" @;6T@(" @(" @(" @13$*(B @(" @($XR(" @(" @(" @(" @
  1348. XM(" @<W!A8V4@(" @(" @(" @:R @(" @(" @(" @3C$*(B @(" @(%,Q(" @
  1349. XM(" @(" @(" @(" @(" N(" @(" @(" @(" @;&P@(" @(" @(" @13$*(B @
  1350. XM(" @(%,Q(" @(" @(" @(" @(" @("!\(" @(" @(" @(" @;6T@(" @(" @
  1351. XM(" @4S(*(B @(" @(%,R(" @(" @(" @(" @(" @("!?(" @(" @(" @(" @
  1352. XM;6T@(" @(" @(" @5S$*(B @(" @(%,R(" @(" @(" @(" @(" @<W!A8V4@
  1353. XM(" @(" @(" @:B @(" @(" @(" @4S$*(B @(" @($4Q(" @(" @(" @(" @
  1354. XM(" @<W!A8V4@(" @(" @(" @:R @(" @(" @(" @3C$*(B @(" @($4Q(" @
  1355. XM(" @(" @(" @(" @("!?(" @(" @(" @(" @;6T@(" @(" @(" @13(*(B @
  1356. XM(" @($4R(" @(" @(" @(" @(" @("!\(" @(" @(" @(" @;6T@(" @(" @
  1357. XM(" @4S$*(B @(" @($4R(" @(" @(" @(" @(" @(" N(" @(" @(" @(" @
  1358. XM;&P@(" @(" @(" @13$*(B @(" @(%<Q(" @(" @(" @(" @(" @<W!A8V4@
  1359. XM(" @(" @(" @:B @(" @(" @(" @4S$*(B @(" @(%<Q(" @(" @(" @(" @
  1360. XM(" @("!?(" @(" @(" @(" @;6T@(" @(" @(" @5S(*(B @(" @(%<R(" @
  1361. XM(" @(" @(" @(" @("!\(" @(" @(" @(" @;6T@(" @(" @(" @3C$*(B @
  1362. XM(" @(%<R(" @(" @(" @(" @(" @(" N(" @(" @(" @(" @:&@@(" @(" @
  1363. XM(" @5S$*(@HB( HB($-O;7!L86EN="!A8F]U="!V:2!M86-R;W,Z"B(@270@
  1364. XM<V5E;7,@=&AA="!Y;W4@8V%N;F]T(&AA=F4@;6]R92!T:&%N(&]N92 G=6YD
  1365. XM;RUA8FQE)R!V:2!C;VUM86YD"B(@:6X@=&AE(&]N92!M86-R;RP@<V\@>6]U
  1366. XM(&AA=F4@=&\@;6%K92!L;W1S(&]F(&QI='1L92!M86-R;W,@86YD"B(@<'5T
  1367. XM('1H96T@=&]G971H97(N"B(*(B!))VQL(&5X<&QA:6X@=VAA="!)(&UE86X@
  1368. XM8GD@86X@97AA;7!L92X@161I="!A(&9I;&4@86YD"B(@='EP92 G.FUA<"!1
  1369. XM(')862<N(%1H:7,@<VAO=6QD(&UA<"!T:&4@42!K97D@=&\@)W)E<&QA8V4@
  1370. XM=&AE"B(@8VAA<F%C=&5R('5N9&5R('1H92!C=7)S;W(@=VET:"!8(&%N9"!Y
  1371. XM86YK('1H92!L:6YE)RX*(B!"=70@=VAE;B!)('1Y<&4@42P@=FD@=&5L;',@
  1372. XM;64@)T-A;B=T('EA;FL@:6YS:61E(&=L;V)A;"]M86-R;R<@86YD"B(@9V]E
  1373. XM<R!I;G1O(&5X(&UO9&4N($AO=V5V97(@:68@22!T>7!E("<Z;6%P(%$@<EA4
  1374. XM)R!A;F0@)SIM87 @5"!9)RP*(B!E=F5R>71H:6YG(&ES($]++B!)8&T@9&]I
  1375. XM;F<@86QL('1H:7,@;VX@82!3<&%R8W-T871I;VXN"B(@268@86YY;VYE(')E
  1376. XM861I;F<@=&AI<R!H87,@86X@86YS=V5R('1O('1H:7,@<')O8FQE;2P@=&AE
  1377. XM(&%U=&AO<B!W;W5L9 HB(&QO=F4@=&\@9FEN9"!O=70N($UA:6P@=&\@9W)E
  1378. XM9VU ;W1C+F]T8V$N;WHN874N"B(*(B!4:&4@;6%C<F]S.@HB(%1H92!M86-R
  1379. XM;R!T;R!R=6X@=&AE(&UA>F4@<V]L=F5R(&ES("=G)RX@5&AI<R!S:6UP;'D@
  1380. XM8V%L;',@='=O(&]T:&5R"B(@;6%C<F]S.B!)+"!T;R!I;FET:6%L:7-E(&5V
  1381. XM97)Y=&AI;F<L(&%N9"!,+"!T;R!L;V]P(&9O<F5V97(@<G5N;FEN9PHB('1H
  1382. XM<F]U9V@@=&AE('-T871E('1A8FQE+@HB($)O=&@@;V8@=&AE<V4@;6%C<F]S
  1383. XM(&%R92!L;VYG('-E<75E;F-E<R!O9B!C86QL<R!T;R!O=&AE<B!M86-R;W,N
  1384. XM($%L; HB(&]F('1H97-E(&]T:&5R(&UA8W)O<R!A<F4@<75I=&4@<VEM<&QE
  1385. XM(&%N9"!S;R!T;R!U;F1E<G-T86YD(&AO=R!T:&ES"B(@=V]R:W,L(&%L;"!Y
  1386. XM;W4@;F5E9"!T;R!D;R!I<R!E>&%M:6YE(&UA8W)O<R!)(&%N9"!,(&%N9"!L
  1387. XM96%R;B!W:&%T('1H97D*(B!D;R H82!S:6UP;&4@<V5Q=65N8V4@;V8@=FD@
  1388. XM86-T:6]N<RD@86YD(&AO=R!,(&QO;W!S("AB>2!C86QL:6YG(%4L('=H:6-H
  1389. XM"B(@<VEM<&QY(&-A;&QS($P@86=A:6XI+@HB"B(@36%C<F\@22!S971S('5P
  1390. XM('1H92!S=&%T92!T86)L92!A;F0@3F5X=$-H87(@=&%B;&4@870@=&AE(&5N
  1391. XM9"!O9B!T:&4@9FEL92X*(B!-86-R;R!,('1H96X@<V5A<F-H97,@=&AE<V4@
  1392. XM=&%B;&5S('1O(&9I;F0@;W5T('=H870@86-T:6]N<R!T;R!P97)F;W)M(&%N
  1393. XM9 HB('=H870@<W1A=&4@8VAA;F=E<R!T;R!M86ME+@HB"B(@5&AE(&5N=')I
  1394. XM97,@:6X@=&AE('-T871E('1A8FQE(&%L;"!B96=I;B!W:71H(&$@:V5Y(&-O
  1395. XM;G-I<W1I;F<@;V8@=&AE"B(@;&5T=&5R("=S)RP@=&AE(&-U<G)E;G0@<W1A
  1396. XM=&4@86YD('1H92!.97AT0VAA<BX@($%F=&5R('1H:7,@:7,@=&AE"B(@86-T
  1397. XM:6]N('1O('1A:V4@:6X@=&AI<R!S=&%T92!A;F0@869T97(@=&AI<R!I<R!T
  1398. XM:&4@;F5X="!S=&%T92!T;R!C:&%N9V4@=&\N"B(*(B!4:&4@96YT<FEE<R!I
  1399. XM;B!T:&4@3F5X=$-H87(@=&%B;&4@8F5G:6X@=VET:"!A(&ME>2!C;VYS:7-T
  1400. XM:6YG(&]F('1H90HB(&QE='1E<B G;B<@86YD('1H92!C=7)R96YT('-T871E
  1401. XM+B!!9G1E<B!T:&ES(&ES('1H92!A8W1I;VX@=&\@=&%K92!T;PHB(&]B=&%I
  1402. XM;B!.97AT0VAA<B M('1H92!C:&%R86-T97(@=&AA="!M=7-T(&)E(&5X86UI
  1403. XM;F5D('1O(&-H86YG92!S=&%T92X*(@HB($]N92!W87D@=&\@<V5E('=H870@
  1404. XM96%C:"!P87)T(&]F('1H92!M86-R;W,@:7,@9&]I;F<@:7,@=&\@='EP92!I
  1405. XM;B!T:&4*(B!B;V1Y(&]F('1H92!M86-R;W,@22!A;F0@3"!M86YU86QL>2 H
  1406. XM:6YS=&5A9"!O9B!T>7!I;F<@)V<G*2!A;F0@<V5E"B(@=VAA="!H87!P96YS
  1407. XM(&%T(&5A8V@@<W1E<"X*(@HB($=O;V0@;'5C:RX*(@HB(%)E9VES=&5R<R!U
  1408. XM<V5D(&)Y('1H92!M86-R;W,Z"B(@<R H4W1A=&4I(" @(" @(" M(&AO;&1S
  1409. XM('1H92!S=&%T92!T:&4@;6%C:&EN92!I<R!I;@HB(&,@*$-H87(I(" @(" @
  1410. XM(" @+2!H;VQD<R!T:&4@8VAA<F%C=&5R('5N9&5R('1H92!C=7)R96YT('!O
  1411. XM<VET:6]N"B(@;2 H36%C<F\I(" @(" @(" M(&AO;&1S(&$@=FD@8V]M;6%N
  1412. XM9"!S=')I;F<@=&\@8F4@97AE8W5T960@;&%T97(*(B!N("A.97AT0VAA<BD@
  1413. XM(" @("T@:&]L9',@=&AE(&-H87)A8W1E<B!W92!M=7-T(&5X86UI;F4@=&\@
  1414. XM8VAA;F=E('-T871E"B(@<B H4V5C;VYD($UA8W)O*2 M(&AO;&1S(&$@<V5C
  1415. XM;VYD('9I(&-O;6UA;F0@<W1R:6YG('1O(&)E(&5X96-U=&5D(&QA=&5R"B(*
  1416. XM<V5T(')E;6%P"G-E="!N;VUA9VEC"G-E="!N;W1E<G-E"G-E="!W<F%P<V-A
  1417. XM;@HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1418. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"B(@9R M(&=O(')U;G,@=&AE('=H
  1419. XM;VQE('-H;W<*(B @(" @(" @22 M(&EN:71I86QI<V4*(B @(" @(" @3" M
  1420. XM('1H96X@;&]O<"!F;W)E=F5R"FUA<"!G(" @24P*(@HB/3T]/3T]/3T]/3T]
  1421. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1422. XM/3T]/3T]/0HB($D@+2!I;FET:6%L:7-E(&5V97)Y=&AI;F<@8F5F;W)E(')U
  1423. XM;FYI;F<@=&AE(&QO;W *(B @($<D/RY>32 M(&9I;F0@=&AE(&QA<W0@+B!I
  1424. XM;B!T:&4@;6%Z90HB(" @(" @("!>("T@<F5P;&%C92!I="!W:71H(&%N(%@@
  1425. XM*'1H92!G;V%L*0HB(" @1UE+9410("T@<')I;G0@=&AE('-T871E('1A8FQE
  1426. XM(&%N9"!N97AT(&-H87(@=&%B;&4@870@=&AE(&5N9"!O9B!T:&4@9FEL90HB
  1427. XM(" @(" @(#!3("T@:6YI=&EA;&ES92!T:&4@<W1A=&4@;V8@=&AE(&UA8VAI
  1428. XM;F4@=&\@13$*(B @(" @(#)';" M(&UO=F4@=&\@=&AE('1O<"!L969T(&-E
  1429. XM;&P@;V8@=&AE(&UA>F4*;6%P($D@("!')#\N#5Y'64ME1% P4S)'; HB"B(]
  1430. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1431. XM/3T]/3T]/3T]/3T]/3T]/3T]"B(@3" M('1H92!L;V]P('=H:6-H(&ES(&5X
  1432. XM96-U=&5D(&9O<F5V97(*(B @(" @(" @42 M('-A=F4@=&AE(&-U<G)E;G0@
  1433. XM8VAA<F%C=&5R(&EN('1H92!#:&%R(')E9VES=&5R"B(@(" @(" @($$@+2!R
  1434. XM97!L86-E('1H92!C=7)R96YT(&-H87)A8W1E<B!W:71H(&%N("=/)PHB(" @
  1435. XM(" @(&UA("T@;6%R:R!T:&4@8W5R<F5N="!P;W-I=&EO;B!W:71H(&UA<FL@
  1436. XM)V$G"B(@(" @("!'3D(@+2!O;B!B;W1T;VT@;&EN92P@8W)E871E(&$@8V]M
  1437. XM;6%N9"!T;R!S96%R8V@@=&AE($YE>'1#:&%R('1A8FQE"B(@(" @(" @(" @
  1438. XM("!F;W(@=&AE(&-U<G)E;G0@<W1A=&4*(B P33!%0&U>32 M('EA;FL@=&AE
  1439. XM(&-O;6UA;F0@:6YT;R!T:&4@36%C<F\@<F5G:7-T97(@86YD(&5X96-U=&4@
  1440. XM:70*(B @(" @("!W6" M('=E(&AA=F4@;F]W(&9O=6YD('1H92!E;G1R>2!I
  1441. XM;B!T:&4@=&%B;&4L(&YO=R!Y86YK('1H90HB(" @(" @(" @(" @9F]L;&]W
  1442. XM:6YG('=O<F0@:6YT;R!T:&4@36%C<F\@<F5G:7-T97(*(B @(" @8&% ;2 M
  1443. XM(&=O(&)A8VL@=&\@=&AE(&-U<G)E;G0@<&]S:71I;VX@86YD(&5X96-U=&4@
  1444. XM=&AE(&UA8W)O+"!T:&ES('=I;&P*(B @(" @(" @(" @('EA;FL@=&AE($YE
  1445. XM>'1#:&%R(&EN(')E9VES=&5R(&X*(B @($=4)$(D4B M(&]N(&)O='1O;2!L
  1446. XM:6YE+"!C<F5A=&4@82!C;VUM86YD('1O('-E87)C:"!T:&4@<W1A=&4@=&%B
  1447. XM;&4*(B @(" @(" @(" @(&9O<B!T:&4@8W5R<F5N="!S=&%T92!A;F0@3F5X
  1448. XM=$-H87(*(B P33!%0&U>32 M('EA;FL@=&AE(&-O;6UA;F0@:6YT;R!T:&4@
  1449. XM36%C<F\@<F5G:7-T97(@86YD(&5X96-U=&4@:70*(B @(" @(#)74R M('=E
  1450. XM(&AA=F4@;F]W(&9O=6YD('1H92!E;G1R>2!I;B!T:&4@=&%B;&4L(&YO=R!Y
  1451. XM86YK('1H90HB(" @(" @(" @(" @;F5X="!S=&%T92!I;G1O('1H92!3=&%T
  1452. XM92!M86-R;PHB(" @(" @(&)8("T@86YD('EA;FL@=&AE(&%C=&EO;B!C;W)R
  1453. XM97-P;VYD:6YG('1O('1H:7,@<W1A=&4@=&%B;&4@96YT<GD*(B @(" @(" @
  1454. XM(" @(&EN=&\@=&AE($UA8W)O(')E9VES=&5R"B(@(" @("!'5DH@+2!O;B!B
  1455. XM;W1T;VT@;&EN92P@8W)E871E(&$@8V]M;6%N9"!T;R!R97-T;W)E('1H92!C
  1456. XM=7)R96YT(&-H87)A8W1E<@HB(" @(" @(#!(("T@86YD('-A=F4@=&AE(&-O
  1457. XM;6UA;F0@:6YT;R!T:&4@<V5C;VYD($UA8W)O(')E9VES=&5R"B(@(" @(&!A
  1458. XM0'(@+2!G;R!B86-K('1O('1H92!C=7)R96YT('!O<VET:6]N(&%N9"!E>&5C
  1459. XM='5T92!T:&4@;6%C<F\@=&\@<F5S=&]R90HB(" @(" @(" @(" @=&AE(&-U
  1460. XM<G)E;G0@8VAA<F%C=&5R"B(@(" @(" @0&T@+2!E>&5C=71E('1H92!A8W1I
  1461. XM;VX@87-S;V-I871E9"!W:71H('1H:7,@<W1A=&4*(B @(" @(" @52 M(&%N
  1462. XM9"!R97!E870*;6%P($P@("!106UA1TY",$TP14!M#7=88&% ;4=4)$(D4C!-
  1463. XM,$5 ;0TR5U-B6$=62C!(8&% <D!M50HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]
  1464. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1465. XM"B(@52 M(&YO('1A:6P@<F5C=7)S:6]N(&%L;&]W960@:6X@=FD@;6%C<F]S
  1466. XM('-O(&-H96%T(&%N9"!S970@52 ]($P*;6%P(%4@("!,"B(*(CT]/3T]/3T]
  1467. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1468. XM/3T]/3T]/3T]/3T*(B!3("T@>6%N:R!T:&4@;F5X="!T=V\@8VAA<F%C=&5R
  1469. XM<R!I;G1O('1H92!3=&%T92!R96=I<W1E<@IM87 @4R @(")S>3)L"B(*(CT]
  1470. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1471. XM/3T]/3T]/3T]/3T]/3T]/3T*(B!1("T@<V%V92!T:&4@8W5R<F5N="!C:&%R
  1472. XM86-T97(@:6X@=&AE($-H87(@<F5G:7-T97(*;6%P(%$@(" B8WEL"B(*(CT]
  1473. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1474. XM/3T]/3T]/3T]/3T]/3T]/3T*(B!!("T@<F5P;&%C92!T:&4@8W5R<F5N="!C
  1475. XM:&%R86-T97(@=VET:"!A;B G3R<*;6%P($$@("!R3PHB"B(]/3T]/3T]/3T]
  1476. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1477. XM/3T]/3T]/3T]"B(@3B M(')E<&QA8V4@=&AI<R!L:6YE('=I=&@@=&AE('-T
  1478. XM<FEN9R G;B<*;6%P($X@("!#+VX;"B(*(CT]/3T]/3T]/3T]/3T]/3T]/3T]
  1479. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*
  1480. XM(B!"("T@<'5T('1H92!C=7)R96YT('-T871E"FUA<"!"(" @(G-P"B(*(CT]
  1481. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1482. XM/3T]/3T]/3T]/3T]/3T]/3T*(B!-("T@>6%N:R!T:&ES(&QI;F4@:6YT;R!T
  1483. XM:&4@36%C<F\@<F5G:7-T97(*;6%P($T@(" B;7DD"B(*(CT]/3T]/3T]/3T]
  1484. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1485. XM/3T]/3T]/3T*(B!%("T@9&5L971E('1O('1H92!E;F0@;V8@=&AE(&QI;F4*
  1486. XM;6%P($4@("!D) HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1487. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"B(@6" M('EA;FL@
  1488. XM=&AI<R!W;W)D(&EN=&\@=&AE($UA8W)O(')E9VES=&5R"FUA<"!8(" @(FUY
  1489. XM=" *(@HB/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1490. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0HB(%0@+2!R97!L86-E('1H:7,@
  1491. XM;&EN92!W:71H('1H92!S=')I;F<@)W,G"FUA<"!4(" @0R]S&PHB"B(]/3T]
  1492. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1493. XM/3T]/3T]/3T]/3T]/3T]"B(@4B M('!U="!.97AT0VAA<@IM87 @4B @(")N
  1494. XM< HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1495. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"B(@5B M(&%D9"!T:&4@;&5T=&5R
  1496. XM("=R)R H=&AE(')E<&QA8V4@=FD@8V]M;6%N9"D*;6%P(%8@("!A<AL*(@HB
  1497. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1498. XM/3T]/3T]/3T]/3T]/3T]/3T]/0HB($H@+2!R97-T;W)E('1H92!C=7)R96YT
  1499. XM(&-H87)A8W1E<@IM87 @2B @(")C< HB"B(]/3T]/3T]/3T]/3T]/3T]/3T]
  1500. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1501. XM"B(@2" M('EA;FL@=&AI<R!L:6YE(&EN=&\@=&AE('-E8V]N9"!-86-R;R!R
  1502. XM96=I<W1E<@IM87 @2" @(")R>20*(@HB/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1503. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0HB
  1504. XM($8@+2!Y86YK($YE>'1#:&%R("AT:&ES(&UA8W)O(&ES(&-A;&QE9"!F<F]M
  1505. XM('1H92!-86-R;R!R96=I<W1E<BD*;6%P($8@(" B;GEL"B(*(CT]/3T]/3T]
  1506. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1507. XM/3T]/3T]/3T]/3T*(B!>("T@<F5P;&%C92!T:&4@8W5R<F5N="!C:&%R86-T
  1508. XM97(@=VET:"!A;B G6"<*;6%P(%X@("!R6 HB"B(]/3T]/3T]/3T]/3T]/3T]
  1509. XM/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
  1510. XM/3T]"B(@64ME1% @+2!C<F5A=&4@=&AE('-T871E('1A8FQE+"!.97AT0VAA
  1511. XM<B!T86)L92!A;F0@:6YI=&EA;"!S=&%T90HB($YO=&4@=&AA="!Y;W4@:&%V
  1512. XM92!T;R!E<V-A<&4@=&AE(&)A<B!C:&%R86-T97(L('-I;F-E(&ET(&ES('-P
  1513. XM96-I86P@=&\*(B!T:&4@;6%P(&-O;6UA;F0@*&ET(&EN9&EC871E<R!A(&YE
  1514. XM=R!L:6YE*2X*;6%P(%D@("!O<T4Q("!K("!.,2 @(" @("!S13%?(&UM($4R
  1515. XM(" @(" @('-%,A9\(&UM(%,Q(" @(" @('-%,BX@;&P@13$;"FUA<"!+(" @
  1516. XM;W-7,2 @:B @4S$@(" @(" @<U<Q7R!M;2!7,B @(" @("!S5S(6?"!M;2!.
  1517. XM,2 @(" @("!S5S(N(&AH(%<Q&PIM87 @92 @(&]S3C$N(&AH(%<Q(" @(" @
  1518. XM('-.,19\(&UM($XR(" @(" @('-.,B @:R @3C$@(" @(" @<TXR7R!M;2!%
  1519. XM,1L*;6%P($0@("!O<U,Q+B!L;"!%,2 @(" @("!S4S$6?"!M;2!3,B @(" @
  1520. XM("!S4S(@(&H@(%,Q(" @(" @('-3,E\@;6T@5S$;"FUA<"!0(" @;VY%,2!K
  1521. XM1B!N13(@;$8@;E<Q($<D2D8@;E<R(&A&(&Y.,2!H1B!N3C(@:T8@;E,Q(&Q&
  1522. X/(&Y3,B!')$I&( U%,1L*
  1523. Xend
  1524. END_OF_FILE
  1525.   if test 16803 -ne `wc -c <'vim/macros/maze/maze_mac.UU'`; then
  1526.     echo shar: \"'vim/macros/maze/maze_mac.UU'\" unpacked with wrong size!
  1527.   else
  1528.     echo shar: Uudecoding \"'vim/macros/maze/maze_mac'\" \(12165 characters\)
  1529.     cat vim/macros/maze/maze_mac.UU | uudecode
  1530.     if test 12165 -ne `wc -c <'vim/macros/maze/maze_mac'`; then
  1531.       echo shar: \"'vim/macros/maze/maze_mac'\" uudecoded with wrong size!
  1532.     else
  1533.       rm vim/macros/maze/maze_mac.UU
  1534.     fi
  1535.   fi
  1536.   # end of 'vim/macros/maze/maze_mac.UU'
  1537. fi
  1538. if test -f 'vim/src/ascii.h' -a "${1}" != "-c" ; then 
  1539.   echo shar: Will not clobber existing file \"'vim/src/ascii.h'\"
  1540. else
  1541.   echo shar: Extracting \"'vim/src/ascii.h'\" \(787 characters\)
  1542.   sed "s/^X//" >'vim/src/ascii.h' <<'END_OF_FILE'
  1543. X/* vi:ts=4:sw=4
  1544. X *
  1545. X * VIM - Vi IMproved        by Bram Moolenaar
  1546. X *
  1547. X * Read the file "credits.txt" for a list of people who contributed.
  1548. X * Read the file "uganda.txt" for copying and usage conditions.
  1549. X */
  1550. X
  1551. X/*
  1552. X * Definitions of various common control characters
  1553. X */
  1554. X
  1555. X#define NUL                     '\000'
  1556. X#define BS                        '\010'
  1557. X#define BS_STR                    (char_u *)"\010"
  1558. X#define TAB                     '\011'
  1559. X#define NL                        '\012'
  1560. X#define NL_STR                    (char_u *)"\012"
  1561. X#define CR                        '\015'
  1562. X#define ESC                     '\033'
  1563. X#define ESC_STR                 (char_u *)"\033"
  1564. X#define DEL                     0x7f
  1565. X#define CSI                     0x9b
  1566. X
  1567. X#define Ctrl(x) ((x) & 0x1f)
  1568. X#define Meta(x) ((x) | 0x80)
  1569. X
  1570. X/*
  1571. X * character that separates dir names in a path
  1572. X */
  1573. X#ifdef MSDOS
  1574. X# define PATHSEP '\\'
  1575. X# define PATHSEPSTR "\\"
  1576. X#else
  1577. X# define PATHSEP '/'
  1578. X# define PATHSEPSTR "/"
  1579. X#endif
  1580. END_OF_FILE
  1581.   if test 787 -ne `wc -c <'vim/src/ascii.h'`; then
  1582.     echo shar: \"'vim/src/ascii.h'\" unpacked with wrong size!
  1583.   fi
  1584.   # end of 'vim/src/ascii.h'
  1585. fi
  1586. echo shar: End of archive 6 \(of 26\).
  1587. cp /dev/null ark6isdone
  1588. MISSING=""
  1589. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ; do
  1590.     if test ! -f ark${I}isdone ; then
  1591.     MISSING="${MISSING} ${I}"
  1592.     fi
  1593. done
  1594. if test "${MISSING}" = "" ; then
  1595.     echo You have unpacked all 26 archives.
  1596.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1597. else
  1598.     echo You still must unpack the following archives:
  1599.     echo "        " ${MISSING}
  1600. fi
  1601. exit 0
  1602. exit 0 # Just in case...
  1603.