home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume3 / redo < prev    next >
Internet Message Format  |  1989-02-03  |  4KB

  1. Path: xanth!mcnc!gatech!bloom-beacon!tut.cis.ohio-state.edu!mandrill!hal!ncoast!allbery
  2. From: goldman@cope.ucsf.edu (Eric S. Goldman)
  3. Newsgroups: comp.sources.misc
  4. Subject: v03i020: "redo"
  5. Message-ID: <8805171730.AA22099@cope>
  6. Date: 17 May 88 17:30:19 GMT
  7. Sender: allbery@ncoast.UUCP
  8. Reply-To: goldman@cope.ucsf.edu (Eric S. Goldman)
  9. Lines: 94
  10. Approved: allbery@ncoast.UUCP
  11.  
  12. comp.sources.misc: Volume 3, Issue 20
  13. Submitted-By: "Eric S. Goldman" <goldman@cope.ucsf.edu>
  14. Archive-Name: redo
  15.  
  16. [This thing has a uuencoded shell script in it; the shell script contains
  17. ESCAPE and CR (*not* NL) characters.  ++bsa]
  18.  
  19. [ If you think this is needed or worth (re-)posting, go ahead.  We have been
  20. using it for years on several machines at UCSF.  (So why am I sending it now?
  21. Well, some of the Korn shell discussions on the Net inspired me to send it,
  22. since it appears that ksh [which I have never used] has a built-in "redo"
  23. facility akin to the one below, and some csh users might want similar
  24. capabilities.)  --ESG ]
  25.  
  26. -------------------------------------------------------------------------------
  27. (The name of the author of the script below, which apparently was obtained from
  28. Usenet years ago, has been lost.)
  29.  
  30. This script gives csh users the capability of command line editing by invoking
  31. the open mode of ex on a file containing a history list, and then sourcing the
  32. edited version of the desired command.
  33.  
  34. Since the script contains control characters (<CONTROL-M> and <ESC>), I have
  35. provided a uuencoded version at the end.  The latter should be uudecoded and
  36. used, *not* the clear-text version, which has had its control characters
  37. changed to printable ones.
  38.  
  39. After uudecoding, to use "redo", do the following:
  40.  
  41. 1) install it in /usr/local/bin/redo (or wherever else you'd like) with
  42.    read-only-for-world permissions (i.e., do *not* make it executable);
  43.  
  44. 2) do
  45.     alias r /usr/local/bin/redo
  46.    (or whatever, corresponding to where you installed it), and also put this
  47.    alias in your favorite "dot" file;
  48.  
  49. 3) type "r" to invoke it; use the "hjkl" keys to get to the line you want to
  50.    edit; edit the line (remember that you're in the open mode of ex); and,
  51.    when you're done, hit <CR> (*not* ZZ).
  52.  
  53. Enjoy.
  54.  
  55. --Eric Goldman
  56. -----------------------------------------------------------
  57.   Eric S. Goldman, M.D.
  58.   Assistant Professor of Laboratory Medicine, Medicine, and
  59.    Medical Information Science
  60.   UCSF School of Medicine
  61.   INET*: goldman@cope.ucsf.edu
  62.   *(If you don't use a name server and don't have cope.ucsf.edu
  63.    in your host table, please add "128.218.1.24     cope.ucsf.edu")
  64.   UUCP: ...!ucbvax!ucsfcgl!cope.ucsf!goldman (MAY BE FLAKY!)
  65.   BITNET: GOLDMAN@UCSFCOPE.BITNET
  66.  
  67. -----------------CLEAR-TEXT VERSION----DO *NOT* CUT AND USE--------------------
  68. # Edit history list at line containing last command (open mode).
  69. # Get up to 22 most recent commands.
  70. # To work properly, put in .login:  alias r source /usr/local/bin/redo
  71. # Author unknown.
  72. history -h 22 >! /tmp/redo.$$
  73.  
  74. # Make CR map to :wq! and start ex quietly at 2nd to last line in open mode.
  75. ex - '+map ^M :.wq\!^[|$-1 open' /tmp/redo.$$
  76. tail -1 /tmp/redo.$$ >! /tmp/cmd.$$
  77.  
  78. # Insert into history without executing.
  79. source -h /tmp/cmd.$$
  80.  
  81. # Clear out temporaries.
  82. /bin/rm -f /tmp/{cmd,redo}.$$
  83.  
  84. # If thing chosen to redo is the redo alias itself then DON'T redo it.
  85. if (!-2:0 != !!:0) !!
  86.  
  87. -----------------UUENCODED VERSION----CUT, UUDECODE, AND INSTALL---------------
  88. begin 644 redo
  89. M(R!%9&ET(&AI<W1O<GD@;&ES="!A="!L:6YE(&-O;G1A:6YI;F<@;&%S="!C
  90. M;VUM86YD("AO<&5N(&UO9&4I+@HC($=E="!U<"!T;R R,B!M;W-T(')E8V5N
  91. M="!C;VUM86YD<RX*(R!4;R!W;W)K('!R;W!E<FQY+"!P=70@:6X@+FQO9VEN
  92. M.B @86QI87,@<B!S;W5R8V4@+W5S<B]L;V-A;"]B:6XO<F5D;PHC($%U=&AO
  93. M<B!U;FMN;W=N+@IH:7-T;W)Y("UH(#(R(#XA("]T;7 O<F5D;RXD) H*(R!-
  94. M86ME($-2(&UA<"!T;R Z=W$A(&%N9"!S=&%R="!E>"!Q=6EE=&QY(&%T(#)N
  95. M9"!T;R!L87-T(&QI;F4@:6X@;W!E;B!M;V1E+@IE>" M("<K;6%P( T@.BYW
  96. M<5PA&WPD+3$@;W!E;B<@+W1M<"]R961O+B0D"@IT86EL("TQ("]T;7 O<F5D
  97. M;RXD)" ^(2 O=&UP+V-M9"XD) H*(R!);G-E<G0@:6YT;R!H:7-T;W)Y('=I
  98. M=&AO=70@97AE8W5T:6YG+@IS;W5R8V4@+6@@+W1M<"]C;60N)"0*"B,@0VQE
  99. M87(@;W5T('1E;7!O<F%R:65S+@HO8FEN+W)M("UF("]T;7 O>V-M9"QR961O
  100. M?2XD) H*(R!)9B!T:&EN9R!C:&]S96X@=&\@<F5D;R!I<R!T:&4@<F5D;R!A
  101. M;&EA<R!I='-E;&8@=&AE;B!$3TXG5"!R961O(&ET+@II9B H(2TR.C @(3T@
  102. )(2$Z,"D@(2$*
  103.  
  104. end
  105. -------------------------------------------------------------------------------
  106.