home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / editors / 2733 < prev    next >
Encoding:
Internet Message Format  |  1992-11-12  |  10.1 KB

  1. From: walker@hpl-opus.hpl.hp.com (Rick Walker)
  2. Date: Thu, 12 Nov 1992 20:45:51 GMT
  3. Subject: new HELP macro for vi
  4. Message-ID: <62420036@hpl-opus.hpl.hp.com>
  5. Organization: HP Labs, High Speed Electronics Dept., Palo Alto, CA
  6. Path: sparky!uunet!ferkel.ucsb.edu!taco!rock!stanford.edu!agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state.edu!wupost!sdd.hp.com!hpscit.sc.hp.com!scd.hp.com!hpscdm!hplextra!hpl-opus!walker
  7. Newsgroups: comp.editors
  8. Lines: 196
  9.  
  10.  
  11. I collected so many nifty vi macros that I eventually forgot what each
  12. key did.  So here is a way that I organized my .exrc to keep everything
  13. documented, and to create an on-line help reference.
  14.  
  15. First thing is to put a descriptive line above every macro.
  16. Each descriptive line starts with the string: <"HINT:>.
  17.  
  18. Here's a snippet of my .exrc:
  19.  
  20.  
  21. --------------start of a few examples --------------------
  22. " ------------------------------------------------------------
  23. "HINT:'F'               Formats a paragraph
  24. "
  25. map F !}fmt ^[
  26. " ------------------------------------------------------------
  27. "HINT:'#'               toggles between numbered editing and non-numbered
  28. "
  29. map @NU@ :set nu^M:map # @NONU@^M:^M
  30. map @NONU@ :set nonu^M:map # @NU@^M:^M
  31. map # @NU@
  32. " ------------------------------------------------------------
  33. --------------end of a few examples --------------------
  34.  
  35.  
  36.  
  37. Next,  you create a macro that collects out the "HINT: lines and
  38. puts them on the screen for your perusal:
  39.  
  40.  
  41.  
  42. " -------------------------------------------------------------
  43. "HINT:'H'               print helpful hints
  44. map H :! clear; sed -n -e "s/^\"HINT://p" ~/.exrc^M
  45. " -------------------------------------------------------------
  46.  
  47.  
  48. Now, I can just hit 'H' from command mode and get the following
  49. reminder screen:
  50.  
  51. ------------------------------------------------------------------
  52. 'H'             print helpful hints
  53. '^Z'            background editor in input mode. autowrite is set.
  54. '^O'            begin a C-style block, leaving in insert mode
  55. '^}'            take you past end of block, leaving in insert mode
  56. '<ext>='        inserts comment during insert mode
  57. '<ext>='        comments current line during command mode
  58. '<ext>-'        deletes comment characters during command mode
  59. 'F'             Formats a paragraph
  60. '#'             toggles between numbered editing and non-numbered
  61. '^I'            toggles between autoindent and noautoindent
  62. 'T'             command will toggle between 4 stop and 8 stop tabs...
  63. 'S'             spell checks an entire document using ispell
  64. '^X'            executes the current line of text
  65. '^P'            Sort by paragraphs...
  66. 'X'             make and delete ruler line (toggle)
  67. 'V'             add modelines to top of file
  68. Kompletion macros...
  69.     type partial word followed by ^K, and choices of
  70.     completed words will be offered.  ^N is next ^P previous...
  71. ------------------------------------------------------------------
  72.  
  73. Typing <return> puts me back in vi.
  74.  
  75. You could also put a bunch of <HELP:> lines in the file to remind
  76. you of other infrequently used built-in commands.
  77.  
  78. Have fun!
  79. --
  80. Rick
  81.  
  82.  
  83. Attached is a uuencoded copy of my .exrc:
  84.  
  85. -------------------- cut here -----------------------------
  86. begin 664 .exrc.new
  87. M(B M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  88. M+2TM+2TM+2TM+2TM+2TM+2TM"B)(24Y4.@HB2$E.5#H*(B M+2TM+2TM+2TM
  89. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  90. M+2TM+2TM"B)(24Y4.B=()PD)<')I;G0@:&5L<&9U;"!H:6YT<R *;6%P($@@
  91. M.B$@8VQE87([('-E9" M;B M92 B<R]>7")(24Y4.B\O<"(@?B\N97AR8PT*
  92. M(B M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  93. M+2TM+2TM+2TM+2TM+2TM+2TM"F%B('=T('<A("]N9G,O>6%Z+W1M<"]V:2YR
  94. M:6-K:G5N:PIA8B!R="!R(" O;F9S+WEA>B]T;7 O=FDN<FEC:VIU;FL*(@ET
  95. M;R!E87-I;'D@<V%V92!A;F0@<F5A9"!T;R!A('1E;7!F:6QE(&9O<B!C=70O
  96. M<&%S=&4@8F5T=V5E;B!F:6QE<PHB('-E="!T86)S=&]P/30*(@IS970@<VAI
  97. M9G1W:61T:#TT( HB"G-E="!A=71O:6YD96YT"B()<V\@:2!D;VXG="!H879E
  98. M('1O('1A8B!I;@IS970@=W)A<&UA<F=I;CTT"B()=W)A<"!W:&5N979E<B!W
  99. M:71H:6X@-"!C:&%R86-T97)S(&]F('1H92!R:6=H="!M87)G:6X*<V5T(&UO
  100. M9&5L:6YE<PHB(" @<V\@=&AA="!W92!S<&]T(&QI;F5S(&QI:V4@+RH@=FDZ
  101. M<V5T('1A8G-T;W!S/3,@*B\*(B @(&%T('1H92!T;W @;V8@82!F:6QE+"!K
  102. M:6YD82!L:6ME(&9I;&4M<W!E8VEF:6,@97AR8R!C;VUM86YD<PHB"G-E="!R
  103. M97!O<G0],2 *(B @('-O('=E(&]U<B!T;VQD('=H96YE=F5R('=E(&%F9F5C
  104. M="!M;W)E('1H86X@,2!L:6YE( HB('-E="!T97)S92 *(B @(&)E8V%U<V4@
  105. M=V4@<')E9F5R('1E<G-E(&5R<F]R(&UE<W-A9V5S+ IS970@=W)I=&5A;GD@
  106. M875T;W=R:71E"B(@("!B96-A=7-E('=E('=A;G0@=&\@=W)I=&4@;W5T(&]U
  107. M<B!F:6QE('=H96YE=F5R('=E(&-A;BP*(B @(&QI:V4@;VX@82 Z=&%G+" Z
  108. M<W1O<"P@;W(@.FYE>'0*(B M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  109. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*(B @($IO8B!"86-K
  110. M9W)O=6YD:6YG($UA8W)O<PHB"B)(24Y4.B=>6B<)"6)A8VMG<F]U;F0@961I
  111. M=&]R(&EN(&EN<'5T(&UO9&4N(&%U=&]W<FET92!I<R!S970N"FUA<"$@&B ;
  112. M.G-T;W -"B)M87 A( $@&SIS=&]P(0T*(B @('=I;&P@<W1O<"!M92!W:71H
  113. M;W5T('=R:71I;F<N"B)M87 @ 2 Z<W1O<"$-"B(@("!U;F-O;F1I=&EO;F%L
  114. M('-T;W *(@HB("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  115. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0HB(" @26YP=70@;6%C<F]S( HB
  116. M"FUA<"$@"R 6&T\*(@EN96=A=&EV92!C87)R:6%G92!R971U<FX@:6X@:6YP
  117. M=70@;6]D92X*(FUA<"$@ B ;8FD*(@EN;VXM9&5S=')U8W1I=F4@%PHB;6%P
  118. M(2 &(!M%80HB(" @86YD(&ET<R!I;G9E<G-E"B(@+2TM+2TM+2TM+2TM+2TM
  119. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  120. M"B(@;6%P("<@8 HB(" @<V\@=V4@<F5T=7)N('1O(&5X86-T('!O<VET:6]N
  121. M+"!N;W0@:G5S=" @;VX@)V$@;W(@)R<*(B M+2TM+2TM+2TM+2TM+2TM+2TM
  122. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*(B @
  123. M($),3T-+($U!0U)/4R M+2!T:&5S92!M86ME('L@86YD('T@:&]T(&ME>7,@
  124. M:6X@:6YS97)T(&UO9&4*(DA)3E0Z)UY/)PD)8F5G:6X@82!#+7-T>6QE(&)L
  125. M;V-K+"!L96%V:6YG(&EN(&EN<V5R="!M;V1E"B)(24Y4.B=>?2<)"71A:V4@
  126. M>6]U('!A<W0@96YD(&]F(&)L;V-K+"!L96%V:6YG(&EN(&EN<V5R="!M;V1E
  127. M"FUA<"$@#R 6%A9[#186%GT@%AM/% IM87 A(!T@%ALO%A86?18-80HB("TM
  128. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  129. M+2TM+2TM+2TM+2TM+0HB(" @0T]-345.5$E.1R!-04-23U,@+2T@=&AE<V4@
  130. M87)E(&%C='5A;&QY('!R971T>2!A;6%Z:6YG"B(*(DA)3E0Z)SQE>'0^/2<)
  131. M:6YS97)T<R!C;VUM96YT(&1U<FEN9R!I;G-E<G0@;6]D90IM87 A(/X@(!M!
  132. M("\J(" J+QL("&D*(@HB2$E.5#HG/&5X=#X])PEC;VUM96YT<R!C=7)R96YT
  133. M(&QI;F4@9'5R:6YG(&-O;6UA;F0@;6]D90IM87 @_B ;7FDO*B ;02 J+QM>
  134. M(" *(@HB2$E.5#HG/&5X=#XM)PED96QE=&5S(&-O;6UE;G0@8VAA<F%C=&5R
  135. M<R!D=7)I;F<@8V]M;6%N9"!M;V1E"FUA<"#V(#IS+%PO7"H@7"A;7BI=*EPI
  136. M7"I<+RQ<,2P;"B(*(B M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  137. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*(B @($%24D]7($U!0U)/
  138. M4R!N97AT(&9O=7(@;&5T(&%R<F]W<R!K97ES('=O<FL@:6X@:6YS97)T(&UO
  139. M9&4["B(*;6%P(2 6&T]!(!8;:V$*;6%P(2 6&T]"(!8;:F$*;6%P(2 6&T]#
  140. M(!8;;&QI"FUA<"$@%AM/1" 6&VD*(@HB"B(@("!7:&\@<V%Y<R!Y;W4@8V%N
  141. M)W0@96UU;&%T92!E;6%C<R!I;B!V:3\@.BTI"B(*;6%P(2 "(!8;:0IM87 A
  142. M( 8@%AML;&D*;6%P(2 !(!8;20IM87 A( 4@%AM!"B(@+2TM+2TM+2TM+2TM
  143. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  144. M+2TM"B(@5&AE<V4@;F5X="!L:6YE<R!A<F4@=V]R:RUA<F]U;F1S(&9O<B!T
  145. M:&4@=FD@8G5G('1H870@:&]M97,@=&AE(&-U<G-O<@HB(&EF('EO=2!H:70@
  146. M=&AE("=H)R!K97D@=VET:&EN(#$@<V5C(&]F(&%N(&5S8V%P92X*(@IM87 @
  147. M&V@@&PIM87 A(!MH(!L*=6YM87 @&V@*=6YM87 A(!MH"B(@+2TM+2TM+2TM
  148. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  149. M+2TM+2TM"B)(24Y4.B=&)PD)1F]R;6%T<R!A('!A<F%G<F%P: HB"FUA<"!&
  150. M("%]9FUT(!L*(B M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  151. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*(DA)3E0Z)R,G"0ET;V=G;&5S
  152. M(&)E='=E96X@;G5M8F5R960@961I=&EN9R!A;F0@;F]N+6YU;6)E<F5D"B(*
  153. M;6%P($!.54 @.G-E="!N=0TZ;6%P(",@0$Y/3E5 #3H-"FUA<"! 3D].54 @
  154. M.G-E="!N;VYU#3IM87 @(R! 3E5 #3H-"FUA<" C($!.54 *(B M+2TM+2TM
  155. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  156. M+2TM+2TM+2T*(DA)3E0Z)UY))PD)=&]G9VQE<R!B971W965N(&%U=&]I;F1E
  157. M;G0@86YD(&YO875T;VEN9&5N= HB( IM87 @0$%)0" Z<V5T(&%I#3IM87 @
  158. M22! 3D]!24 -.@TZ(BTM+2T@875T;VEN9&5N="!/3B M+2TM(@T*;6%P($!.
  159. M3T%)0" Z<V5T(&YO86D-.FUA<"!)($!!24 -.@TZ(BTM+2T@875T;VEN9&5N
  160. M="!/1D8@+2TM+2(-"FUA<"!)($!.3T%)0 HB("TM+2TM+2TM+2TM+2TM+2TM
  161. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0HB
  162. M2$E.5#HG5"<)"6-O;6UA;F0@=VEL;"!T;V=G;&4@8F5T=V5E;B T('-T;W @
  163. M86YD(#@@<W1O<"!T86)S+BXN"B(*;6%P($!44S1 (#IS970@=',]- TZ<V5T
  164. M('-W/30-.FUA<"!4($!44SA #3H-.B(M+2TM(%1A8G,@<V5T('1O(&9O=7(@
  165. M*#0I("TM+2TB#0IM87 @0%13.$ @.G-E="!T<STX#3IS970@<W<]. TZ;6%P
  166. M(%0@0%13-$ -.@TZ(BTM+2T@5&%B<R!S970@=&\@96EG:'0@*#@I("TM+2TB
  167. M#0IM87 @5"! 5%,T0 HB("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  168. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0HB2$E.5#HG4R<)"7-P
  169. M96QL(&-H96-K<R!A;B!E;G1I<F4@9&]C=6UE;G0@=7-I;F<@:7-P96QL"B(*
  170. M;6%P(%,@.C$L)'<A("]T;7 O<F-W<W!E;&P-.B%I<W!E;&P@+W1M<"]R8W=S
  171. M<&5L; T-.C$L)&0-.G(@+W1M<"]R8W=S<&5L; T*(B M+2TM+2TM+2TM+2TM
  172. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  173. M+2T*(DA)3E0Z)UY8)PD)97AE8W5T97,@=&AE(&-U<G)E;G0@;&EN92!O9B!T
  174. M97AT"B(*;6%P(!@@(GID9$!Z"FUA<"$@&" B>F1D0'H*(@HB("TM+2TM+2TM
  175. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  176. M+2TM+2TM+0HB2$E.5#HG7E G"0E3;W)T(&)Y('!A<F%G<F%P:',N+BX*;6%P
  177. M(! ).B4A<&5R;" M,# @+64@)W!R:6YT('-O<G0@/#XG#2 *(B M+2TM+2TM
  178. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  179. M+2TM+2TM+2T*(DA)3E0Z)U@G"0EM86ME(&%N9"!D96QE=&4@<G5L97(@;&EN
  180. M92 H=&]G9VQE*0IM87 @0%)50"!/&VDM+2TM*RTM+2TQ+2TM+2LM+2TM,BTM
  181. M+2TK+2TM+3,M+2TM*RTM+2TT+2TM+2LM+2TM-2TM+2TK+2TM+38M+2TM*RTM
  182. M+2TW+2TM+2LM+2TM.!L6#3IM87 @6"! 3E) #3H-"B(*(FUA<"! 3E) (#IG
  183. M+UXM+2TM*RTM+2TQ+2TM+2LM+2TM,BTM+2TK+2TM+3,M+2TM*RTM+2TT+2TM
  184. M+2LM+2TM-2TM+2TK+2TM+38M+2TM*R]D#3IM87 @6"! 4E5 #3H-"FUA<"! 
  185. M3E) (&UZ.F<O7BTM+2TK+2TM+3$M+2TM*RTM+2TR+2TM+2LM+2TM,RTM+2TK
  186. M+2TM+30M+2TM*RTM+2TU+2TM+2LM+2TM-BTM+2TK+V0-8'H-.FUA<"!8($!2
  187. M54 -.@T*;6%P(%@@0%)50 HB("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  188. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*(DA)3E0Z)U8G
  189. M"0EA9&0@;6]D96QI;F5S('1O('1O<"!O9B!F:6QE"FUA<"!6(#HQ#6DN7")V
  190. M:3IS970@=',].#H-&VL*(B M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  191. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM"B)(24Y4.DMO;7!L
  192. M971I;VX@;6%C<F]S+BXN"B)(24Y4.@ET>7!E('!A<G1I86P@=V]R9"!F;VQL
  193. M;W=E9"!B>2!>2RP@86YD(&-H;VEC97,@;V8*(DA)3E0Z"6-O;7!L971E9"!W
  194. M;W)D<R!W:6QL(&)E(&]F9F5R960N("!>3B!I<R!N97AT(%Y0('!R979I;W5S
  195. M+BXN"B(*;6%P(2 +(!MA+AMB;6UI/UP\&S)H(GID="Y >@UY=VUX8&U08F5A
  196. M(!MD=V)I81LB>F1T+GA >@IM87 A( X@&V$N&V)D=V!X+PUY=VUX8&U08F5A
  197. M(!MD=V)I81LB>F1T+GA >@IM87 A(! @&V$N&V)D=V!X/PUY=VUX8&U08F5A
  198. M(!MD=V)I81LB>F1T+GA >@HB("TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  199. M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0HB2$E.5#H*(DA)
  200. M3E0Z"B(@+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
  201. 7+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0HM
  202.  
  203. end
  204.  
  205.  
  206.