home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / sys / atari / st / 12299 < prev    next >
Encoding:
Internet Message Format  |  1992-08-13  |  8.8 KB

  1. Path: sparky!uunet!munnari.oz.au!bunyip.cc.uq.oz.au!uqcspe!cs.uq.oz.au!warwick
  2. From: warwick@cs.uq.oz.au (Warwick Allison)
  3. Newsgroups: comp.sys.atari.st
  4. Subject: Elvis 1.5 for MiNT (and TOS) uploaded to atari.archive
  5. Keywords: elvis vi
  6. Message-ID: <9808@uqcspe.cs.uq.oz.au>
  7. Date: 13 Aug 92 23:44:28 GMT
  8. Sender: news@cs.uq.oz.au
  9. Reply-To: warwick@cs.uq.oz.au
  10. Lines: 168
  11.  
  12. I have just uploaded my port of Elvis 1.5 to atari.archive.umich.edu -
  13. it is in the atari/new directory in the file elvis1_5.zoo
  14.  
  15. Notes:
  16.     1. Elvis 1.5 has VISUAL HIGHLIGHTING!!!!!!
  17.     2. This port does NOT crunch/uncrunch cr/lf - if the files
  18.         has cr's in it, they will show up on the screen
  19.         (but they can be easily deleted with ":1,$ s/^M$//")
  20.     3. This port does NOT busy-wait on the keyboard, so it is
  21.         much more friendly under MiNT (doesn't chew CPU)
  22.     4. This port DOES use termcap - and includes some termcap entries
  23.     5. This port SHOULD allow "national" keyboards to operate (can't test)
  24.     6. This port STILL allows you to map most of the Aly-key combinations
  25.     7. This port ALSO allows you to map the Contol-shift, etc. combinations
  26.     8. This port DOES allow shell escapes, pipes etc (under MiNT
  27.  
  28.  
  29. But:
  30.     1. This port does NOT allows shell escapes under TOS [fork() fails]
  31.  
  32.  
  33. Here is the Elvis 1.5 distribution's chat about the diffs from 1.4 to 1.5:
  34.  
  35. ::::::::::::::
  36. 14to15.txt
  37. ::::::::::::::
  38. Here's a quick list of features in 1.5 that aren't in 1.4
  39.  
  40. - Under MS-DOS, no system variables are accessed directly.
  41. - Elvis now works under VMS.
  42. - The "file is busy" limitation has been removed.
  43. - Control-V quoting is more compatible with the real vi.
  44. - The ":set warn" warning is only output on a ":!" or ":sh" command that isn't
  45.   being used as a filter.
  46. - Function keys can be easily mapped in a terminal-independent way.  The
  47.   ":mkexrc" command will then save the mappings in a terminal-independent way.
  48. - The `ctags` program has been modified to support ANSI C (somewhat).
  49. - The `ref` program has been modified.  It no longer needs a "refs" file
  50. - A new ":color" command allows you to control which colors elvis uses.
  51.   (This only works right on PCs... running any operating system, though!)
  52. - The ":set remap" option is now supported.  Elvis allows recursive macros!
  53. - A new option, ":set ruler", has been added.  It causes elvis to constantly
  54.   display the current line/column numbers.
  55. - Many small changes have been made to bring elvis a little closed to POSIX.
  56. - In visual commannd mode, the new 'v' and 'V' commands let you *visibly*
  57.   mark the text that you want to apply a c/d/y/</=/>/\ command to.
  58. - The \ key is a new operator command.  It brings up a small menu.
  59. - The = key is now an operator command that sends the selected text through
  60.   a predefined filter program.  The default filter is "fmt", but you can change
  61.   it via ":set equalprg=indent" or whatever.
  62. - A clone of "fmt" is included.
  63. - You can now move directly to a given percentage of the way through the file,
  64.   via a command such as "50%".  (The numberless % command still works, too.)
  65. - Regular expressions now support the \{n\} and \{n,m\} closure operators.
  66. - File preservation and recovery is now handled in a more vi-like way.
  67. - Keyboard timeouts are now handled in a better way on SysV and BSD unices.
  68.  
  69.  
  70. The main goals of 1.5 have been to fix bugs, improve portability,
  71. increase compatibility with the real vi, and add a few useful
  72. extensions.  Most of the extensions can be individually disabled by
  73. compile-time options, if you like.
  74.  
  75. My favorite extension is a new *visible* way to select text to delete,
  76. yank, or whatever.  In visual command mode, if you hit 'v', then the
  77. character under the cursor is hilighted.  As you move the cursor around,
  78. all text from the 'v' spot to the current cursor position is hilighted.
  79. When you've moved the cursor to the end of the text you want to act on,
  80. you just need to hit one of the operator keys once.  For example,
  81. "vwwwd" is approximately the same as "3dw".  To cancel the selection
  82. without doing anything to the text, hit 'v' a second time.
  83.  
  84. The uppercase 'V' key does the same thing with whole lines, instead of
  85. characters.  E.g., "Vjjjjj>" is a lot like ">5j" or "6>>".
  86.  
  87. The '\' key is a new operator which pops up a menu from which you can
  88. choose any of the most common operations.
  89.  
  90. All three of these can be mapped using the "visual" hack.  This allows
  91. them to be used while you're in input mode.  Also, I've experimented
  92. with using them in conjunction with a mouse, with the mouse configured
  93. like this: mouse movement simulates repeated pressings of the arrow
  94. keys, and the buttons send unique escape codes when pressed and when
  95. released.  I mapped the left and right buttons to send 'v' and 'V'
  96. (respectively) when pressed, and '\' when released.  This gives elvis a
  97. reasonably nice mouse interface, since the '\' pop-up menu is clever
  98. enough allow selection via arrow keys (mouse movement) and the '\' key
  99. (mouse button).
  100.  
  101. The '%' movement command can now accept a "count" argument.  A plain "%"
  102. still moves to the matching parenthesis, as always, but "50%" moves the
  103. cursor to approximately half way through the file.  I figured this might
  104. provide a nice hook for adding support for a slider bar in a windowing
  105. system, but I haven't actually tried it.  For a similar reason,
  106. control-X now moves the cursor to a given screen column (taking
  107. side-ways scrolling into account), which I figured might be useful in
  108. conjuction with the 'H' command for adding simple cursor positioning in
  109. a windowing system.  If the user clicks on row 5 column 27, then you
  110. could stuff "5H27^X" into the type-ahead queue, and elvis would move the
  111. cursor there.
  112.  
  113. The '=' key is a new operator which filters the affected text through an
  114. external program.  It is similar to the '!' command, except that '='
  115. uses a predefined command instead of asking you each time.  The default
  116. program is "fmt", and you can change it via ":set ep=foo".  A version of
  117. "fmt" is included.  (In case you didn't know: fmt performs simple paragraph
  118. reformatting and word wrap.)
  119.  
  120. There is a new ":color" command.  Its usage should be fairly intuitive.
  121. Try ":color light cyan on blue" first, and then ":color" with no arguments.
  122.  
  123. There are several new :set options.  Most of them are SysV compatible.
  124. One nice extension is ":set ruler", which causes the row and column
  125. number to be continuously displayed on the bottom line of the screen.
  126.  
  127. The ctags command has been modified to work better with "new style"
  128. function definitions.  Also, it has been extended to allow typedefs and
  129. static (local) definitions to be included.
  130.  
  131. The ref command has also been improved.  Also, it has been extended to
  132. work well with the "static tags" option of the new ctags program.  You
  133. are no longer forced to have a separate "refs" file (although you can if
  134. you want) because ref now reads the "tags" file and then looks up the
  135. function header.  Elvis can be configured to call the "ref" program to
  136. perform tag lookup, so elvis can benefit from the more sophisticated
  137. lookup that "ref" offers.
  138.  
  139. Regular expressions can now handle \{m\} and \{m,n\} notation.  The
  140. \{m\} operator means "the preceding single-character expression must be
  141. repeated exactly m times."  The \{m,n\} notation means "the preceding
  142. single-character expression must be repeated at least m times, but no
  143. more than n times."  If m is missing, it defaults to 0.  If n is
  144. missing, it defaults to infinity.  So "^-\{80\}$" matches a line of
  145. exactly 80 hyphens, and "[A-Za-z]\{10,\}" matches any word that has 10
  146. or more characters.
  147.  
  148. The ttyread() function has been modified.  It is now passed a "timeout"
  149. argument.  This argument should be 0 to never timeout, or the amount of
  150. time to allow for a keystroke, expressed in tenths of a second.  For
  151. SysV UNIX, this is implemented via VMIN/VTIME.  For BSD, it uses
  152. select().  For other UNIX flavors, it uses the old SIGALRM trick and has
  153. poorer time resolution.  All three UNIX versions are in the file
  154. "unix.c".
  155.  
  156. File preservation and recovery is now handled in a more vi-like way.  A
  157. program called elvprsv extracts the text from a temp file and stores it
  158. in the /usr/preserve directory.  A separate program called "elvrec" is
  159. used to recover the file -- move it from /usr/preserve to the current
  160. directory.  Sadly, this makes installation more complex.
  161.  
  162. The tinytcap.c file has been completely rewritten, to make it smaller and
  163. more maintainable.  More terminal descriptions are included in it now.
  164.  
  165. The ":set remap" option is now supported.  Many of the more complex macro
  166. packages depend on this option.  Also, support for maps and abbreviations
  167. has been merged into a single, more cohesive package.  Abbreviations work
  168. a little better now than they did before.
  169.  
  170. :::::::::::::::::::
  171.  
  172.  
  173. --
  174. Warwick
  175. --
  176.   _-_|\      warwick@cs.uq.oz.au            /Disclaimer:
  177.  /     * <-- Computer Science Department,  /  
  178.  \_.-._/     University of Queensland,    /      void (if removed)
  179.       v      Brisbane, Australia.        /  
  180.