home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk1.iso / altsrc / articles / 11145 < prev    next >
Text File  |  1994-08-20  |  7KB  |  166 lines

  1. Newsgroups: comp.editors,alt.sources,comp.misc,comp.unix.misc,comp.mail.misc,comp.unix.admin
  2. Path: wupost!usc!sol.ctr.columbia.edu!howland.reston.ans.net!europa.eng.gtefsd.com!uhog.mit.edu!news.mtholyoke.edu!world!jhallen
  3. From: jhallen@world.std.com (Joseph H Allen)
  4. Subject: JOE 1.0.12 - Blurb
  5. Message-ID: <Cur3x5.A95@world.std.com>
  6. Organization: The World Public Access UNIX, Brookline, MA
  7. Date: Thu, 18 Aug 1994 22:03:04 GMT
  8. Lines: 155
  9. Xref: wupost comp.editors:12658 alt.sources:11145 comp.misc:21503 comp.unix.misc:16342 comp.mail.misc:17501 comp.unix.admin:26623
  10.  
  11.  
  12.                            Joe's Own Editor 1.0.12
  13.  
  14.                   A Free ASCII-Text Screen Editor for UNIX
  15.                                by Joseph Allen
  16.  
  17.  
  18. Get it by anonymous ftp
  19. from: 'ftp.std.com', file '/src/editors/joe1.0.12.tar.Z'
  20.  
  21. If you have questions, problems or suggestions,
  22. send email to: 'jhallen@world.std.com'
  23.  
  24.  
  25.     JOE is the professional freeware ASCII text screen editor for UNIX. 
  26. It makes full use of the power and versatility of UNIX, but lacks the steep
  27. learning curve and basic nonsense you have to deal with in every other UNIX
  28. editor. JOE has the feel of most IBM PC text editors: The key-sequences are
  29. reminiscent of WordStar and Turbo-C.  JOE is much more powerful than those
  30. editors, however.  JOE has all of the features a UNIX user should expect:
  31. full use of termcap/terminfo, better screen update optimizations than even
  32. GNU-emacs (JOE is fully usable at 2400 baud), simple installation, and all
  33. of the UNIX-integration features of VI.
  34.  
  35. Features:
  36.  
  37.     JOE has a well thought-out user-interface with great attention to
  38. detail.  The Page Up and Page Down functions do not move the cursor relative
  39. to the edges of the screen.  Left and Right arrow keys work at the beginning
  40. and ends of lines.  The cursor can move past the ends of lines without
  41. jumping, but also without inserting or deleting extra spaces at the ends of
  42. lines. Control characters and characters above 127 can be displayed and
  43. entered- even ^Q and ^S.  The cursor's row and column number can be
  44. displayed in the status line.
  45.  
  46.     The key layout is made to reduce terminal incompatibility nonsense. 
  47. ^Q and ^S are not used and both ^H and DEL are mapped to backspace.  Case
  48. does not matter in key sequences- ^K E, ^K e, and ^K ^E are each mapped to
  49. the same function.  The arrow keys and PageUp, PageDown, Home, End, Insert
  50. and Delete keypad keys are read from the termcap entry and are assigned to
  51. the proper functions.  A simple initialization file, similar to Semware's
  52. Q-EDIT, allows key-bindings, simple macros and help windows to be defined.
  53.  
  54.     JOE has full termcap/terminfo support and will work on any terminal. 
  55. JOE has the best screen update optimization algorithm available.  It uses
  56. VT100-style scrolling regions the way they are supposed to be used (I.E.,
  57. without building insert and delete line functions out of them) and has a
  58. powerful line shifting (insert/delete character) algorithm which works even
  59. if text goes past the ends of lines.  JOE has deferred screen update to
  60. handle typeahead and uses the baud rate reported by 'stty' to ensure that
  61. deferral is not bypassed by tty buffering.
  62.  
  63.     JOE has multiple windows and lacks the confusing notion of a named
  64. buffers.  You just have files and windows.  When there are more windows than
  65. can fit on the screen, the Goto-Next-Window function scrolls through them. 
  66. The same file can have multiple windows opened on it.
  67.  
  68.     JOE has VI-style unix integration.  You can filter a highlighted
  69. block through a UNIX command.  Also, each place in joe which accepts a file
  70. name (including the command line) will also accept:
  71.  
  72.         !command        to pipe into or out of a command
  73.         >>filename        to append to a file
  74.         filename,start,size    to edit a portion of a file/device
  75.         -            to use stdin or stdout
  76.  
  77.     File names on the command line may be preceeded by +nnn to start
  78. editing at a specified line.
  79.  
  80.     JOE has shell windows.  You can run a shell in a window and any
  81. output from commands run in the shell gets stored in a buffer.
  82.  
  83.     JOE has an orthogonal event-driven design.  Each prompt is actually
  84. a normal edit buffer containing a history of all of the responses entered
  85. for that prompt.  You can use all of the normal edit commands to create file
  86. names and search strings.  You can use the up arrow key (or search backwards
  87. and any other appropriate edit command) to go back through the history of
  88. previous responses.  Prompts are reentrant- meaning that edit commands which
  89. require prompts can still be used inside of prompts.
  90.  
  91.     JOE has TAB-completion and file selection menus.  If you hit tab in
  92. a file name prompt, the name is either completed or a menu of possible
  93. matches appears.
  94.  
  95.     JOE stores edit files in a doubly linked list of gap buffers which
  96. can spill into temporary files.  You can edit files of any size up to the
  97. amount of free disk space and there are no line-length restrictions.  Since
  98. the buffering system is block-based, JOE will incur only a minimum of
  99. swapping on heavily loaded systems.
  100.  
  101.     When you ask for help, you get a small menu of help screens to
  102. choose from (all definable in an initialization file).  Once a help screen
  103. is selected, the help remains on while you continue to use the editor.  Here
  104. is the first help screen:
  105.  
  106. CURSOR           GO TO            BLOCK      DELETE   MISC         EXIT
  107. ^B left ^F right ^U  prev. screen ^KB begin  ^D char. ^KJ reformat ^KX save
  108. ^P up   ^N down  ^V  next screen  ^KK end    ^Y line  ^TT overtype ^C  abort
  109. ^Z previous word ^A  beg. of line ^KM move   ^W >word ^@  insert   ^KZ shell
  110. ^X next word     ^E  end of line  ^KC copy   ^O word< ^R  retype   FILE
  111. SEARCH           ^KU top of file  ^KW file   ^J >line QUOTE        ^KE new
  112. ^KF find text    ^KV end of file  ^KY delete ^_ undo  `   Ctrl-    ^KR insert
  113. ^L  find next    ^KL to line No.  ^K/ filter ^^ redo  ^\  Meta-    ^KD save
  114.  
  115.     JOE has a powerful set of editing commands suitable for editing both
  116. text files and programs:
  117.  
  118.         - search and replace system, including powerful regular 
  119.           expressions (including matching of balanced C expressions).
  120.  
  121.         - tags file search
  122.  
  123.         - paragraph format
  124.  
  125.         - undo and redo
  126.  
  127.         - position history allows you to get back to previous
  128.           editing contexts and allows you to quickly flip between
  129.           editing contexts
  130.  
  131.         - multiple keyboard macros
  132.  
  133.         - block move/copy/delete/filter
  134.  
  135.         - rectangle (columnar) mode
  136.  
  137.         - overtype/insert modes
  138.  
  139.         - indent/unindent
  140.  
  141.         - goto matching ( [ {
  142.  
  143.         - auto-indent mode
  144.  
  145.     Plus many options can be set:
  146.  
  147.         - can have EMACS-style cursor re-centering on scrolls
  148.  
  149.         - characters between 128-255 can be shown as-is for
  150.           Scandinavian characters
  151.  
  152.         - Final newline can be forced on end of file
  153.  
  154.         - Can start with a help screen on
  155.  
  156.         - Left/Right margin settings
  157.  
  158.         - Tab width
  159.  
  160.         - Indentation step and fill character
  161. -- 
  162. /*  jhallen@world.std.com (192.74.137.5) */               /* Joseph H. Allen */
  163. int a[1817];main(z,p,q,r){for(p=80;q+p-80;p-=2*a[p])for(z=9;z--;)q=3&(r=time(0)
  164. +r*57)/7,q=q?q-1?q-2?1-p%79?-1:0:p%79-77?1:0:p<1659?79:0:p>158?-79:0,q?!a[p+q*2
  165. ]?a[p+=a[p+=q]=q]=q:0:0;for(;q++-1817;)printf(q%79?"%c":"%c\n"," #"[!a[q-1]]);}
  166.