Newsgroups: comp.editors From: rnelson@wsuaix.csc.wsu.edu (roger nelson;S23487) Subject: Text editor compendium (LONG) Message-ID: <1993Jan25.233032.17317@serval.net.wsu.edu> Organization: Washington State University Date: Mon, 25 Jan 93 23:30:32 GMT Lines: 310 A number of people often post questions asking for editors which have certain features. I have been working on a summary of features available in a few editors. The summary is organized in a tabular check-sheet format listing features available for various text editors with a general indication of how well the feature/command is supported with respect to other editors. Perhaps this table (when further filled in) might be useful addition to the comp.text.editors FAQ. I would like to hear comments, and suggestions for additional features, and table entries for additional editors. Fill out a table column for your favorite editor and send it to me, and I will add it to the compendium and submit it to Ruben Olson for possible inclusion in the archive. The table is listed first followed by footnotes, followed by a detailed description of the features listed in the first column. TEXT EDITOR COMPENDIUM The following is a tabular cross reference of text editors that are available on a variety of computers/operating systems. Send additions, changes and comments to Roger Nelson: rnelson@wsuaix.csc.wsu.edu Codes: y The editor supports this feature n The editor doesn't support this feature at all + The editor supports this better than most editors - The editor supports this but not very well other editors do better ~ The editor does this another way but not necessarily better ! The editor does this another way better M The editor comes with a macro to do this m A macro could be written to do this O Optional (the feature may be enabled/disabled somehow) ? Don't know y?/n? Don't know for sure NA Not applicable or unnecessary with the editing model number see footnote #number The editor supports this number of X's (Ie number of buffers) #! The editor supports an unlimited number of X's For example: Support of regular expressions, Vi has very good support of regular expressions so it would get a 'y+' The borland compiler text editors offer regular expression searching, but only a subset of options, this would qualify for a 'y'. An editor offering wild cards (Ie * or ?) would qualify for 'n-' or may be a '~'. An editor which has a search string construction interface that makes regular expression like searches easier would get a '!'. | | | | | | | | | | |u | | | | | | | | |FE| | | |X | |B |C |T |E | | | | | | | | |UM| |S |R |E | |R |R |u |M | | | | | | | | |LA|E |E |E |D |TE|I |I |r |A | | | | | | | Feature |v |LC|D |D |D |I |PV|E |S |b |C | | | | | | | |i | S|T |T |T |T |UE|F |P |o |S | | | | | | | -------------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Modal (like vi) |y |n |n |n |n | | | | |n | | | | | | | | Prog. lang senstive mode |n |y |n |n |n | | | | |y | | | | | | | | Match parenthesis mode |y |y |n |n |y | | | | |y | | | | | | | | Append file to buffer | | | | |y | | | | |n | | | | | | | | Auto. indentation mode | | | | |y | | | | |y | | | | | | | | Simple tallying |n |n |n |n |1 |n | | | |n | | | | | | | | User defined tabs |n | |n |y |y |y?| | | |y~| | | | | | | | User defined margins |y | |n |y |y |y | | | |n | | | | | | | | Auto-wrap (CR inserted) |y |y | | |n | | | | |n | | | | | | | | Multiple rulers |NA| |NA|#9|#9| | | | |NA| | | | | | | | Editable rulers or tabs |- | |- |y+|y+|y+| | | |~ | | | | | | | | Allows backward search |y | |y |y |y |y | | | |y | | | | | | | | Case insensitive search |n | |y |y |n |y | | | |y | | | | | | | | Case sensitive search |y | |y |y |y |y | | | |y | | | | | | | | Wildcard search |! |n |n |n |y |y | | | |n | | | | | | | | Regular expression search|+ |+ |n |n |+ |n?| | | |y | | | | | | | | Incremental find |n |y |n |n |y |n | | | |n | | | | | | | | Cont. inc find |n |y?|n |n |y |n | | | |n | | | | | | | | Center line |n | |n |y |y |n | | | |n | | | | | | | | Multiple buffers (12)|- |+ |n |y |y |n?| | | |y | | | | | | | | Pulldown/popup menus |n |n |n |n |yO|n | | | |y | | | | | | | | Other Menus |n |y |n |n |y~|n | | | |y | | | | | | | | Command line mode like ex|y |~ |y |~ |~ |y | | | |n | | | | | | | | Cut/paste regions |n |y |y |y |y |n | | | |y | | | | | | | | Columnwise cut/paste |n |M?|n |y |y |n |m?| | |n | | | | | | | | Command keys redefinable |-?|y |-?|y |y |n |y | | |n?| | | | | | | | Delete character |y |y |y |y |y |y |y | | |y | | | | | | | | Delete word |y |y |y |y |y |n |y | | |y | | | | | | | | Delete line |y |y |n?|n?|y |y |y | | |y | | | | | | | | Delete to EOL |n?| |y |y |~ |y |y | | |n | | | | | | | | Change filename w/o save |n | |n |n |y |n |n | | |n | | | | | | | | Enter ASCII codes by # |- | |y |y |y |n |y?| | |y | | | | | | | | Exit and save |y |y |y |y |y |y |y | | |y | | | | | | | | Search and replace (10) |~ |! |~ |~ |~ |~ | | | |y | | | | | | | | Replacement prompting |n |y |y?|y |y |n |y | | |y | | | | | | | | Continue search |y | |y |y |y |- |y | | |y | | | | | | | | Format paragraph |n |m?|n |y |y |n |m?| | |n | | | | | | | | Insert file at cursor |n |y |y |y |y |n |y | | |y | | | | | | | | Goto begin of file. |y | |y |y |y |y |y | | |y | | | | | | | | Goto end of file. |y | |y |y |y |y |y | | |y | | | | | | | | Goto left margin. |NA| |NA|n |y |n | | | |NA| | | | | | | | Goto right margin. |n | | |n |y |n | | | |NA| | | | | | | | Goto begin of line. |y |y | | |y |y | | | |y | | | | | | | | Goto end of line. |y |y | | |y | | | | |y | | | | | | | | Goto bottom of screen. | |y | | |y |- | | | |n | | | | | | | | Goto middle of screen. | |y | | |n |- | | | |n | | | | | | | | Goto top of screen. | |y | | |y |- | | | |n | | | | | | | | Goto column number | | | | |y |n | | | |n | | | | | | | | Goto line number |y |y |y |y |y |y |y | | |y | | | | | | | | Online manual |~ |y |y |y |y |- |y | | |+ | | | | | | | | Context sensitive help |n |y?| |n |n-| | | | |+ | | | | | | | | Insert space |n | |n |n |y |y |n | | |n | | | | | | | | Open blank line before |y | |y?|y?|y |y | | | |n | | | | | | | | Open blank line after |y | |y |y |y |y |y | | |n | | | | | | | | Insert/Overwrite mode |y |y |n?|y |y |n | | | |y | | | | | | | | Invert case char |y |y |y |y |y |n |y | | |n | | | | | | | | Invert case region |n | |y |y |y |n |y | | |n | | | | | | | | Uppercase char |n | |n |n |y |n | | | |n | | | | | | | | Uppercase region |n | |n |n |y |n | | | |n | | | | | | | | Lowercase char |n | |n |n |y |n | | | |n | | | | | | | | Lowercase region |n | |n |n |y |n | | | |n | | | | | | | | Join lines |y | |! |! |y |y | | | |! | | | | | | | | Split lines |y | |! |! |y |y | | | |! | | | | | | | | Save/recall keystrokes |- |y?|n |y |y |n |y | | |n | | | | | | | | Load file (replacing text| | | |y |y | | | | |y | | | | | | | | Save/Load rulers |NA| |NA|y |y |? | | | |n | | | | | | | | Goto begin next line |y | | | |y |n | | | |n | | | | | | | | Goto begin prev line | | | | |y |n | | | |n | | | | | | | | Move cursor up by page |y |y |y |y |y |y |y | | |y | | | | | | | | Move cursor dn by page |y |y |y |y |y |y |y | | |y | | | | | | | | Move to next word |y |y |y~|y~|y |n |y | | |y | | | | | | | | Move to prev word |y?|y |y~|y~|y |n |y | | |y | | | | | | | | 4-way scrolling/panning |n |- |n |y |y |- |- | | |y | | | | | | | | Query key (show key bind)|n |n |n |n |y |n |n | | |n | | | | | | | | Abort editing session |y |y |y |y |y |y |y | | |y | | | | | | | | Refresh the screen. |y |y |y |y |y |y |y | | |NA| | | | | | | | Save w/ new name |y |y |y |y |y |y |y | | |y | | | | | | | | Save macros to file | |y | |n |y |y | | | |n | | | | | | | | Save region to file. |NA|y?|y |y |y |NA|y | | |y | | | | | | | | Send select text to shell|n |y?|n |n |y |n | | | |n | | | | | | | | Spawn a new process/shell|~ |+ |y?|y |y |n |y | | |y | | | | | | | | Execute a system command.|y |+ |y |n |y |+ |? | | |+ | | | | | | | | Sort by selected columns |n |m?|n |n |y |y | | | |n | | | | | | | | Spell check buffer |m?|y?|n |n |y |n | | | |n | | | | | | | | Spell check select text |m?|y?|n |n |n |n | | | |n | | | | | | | | Tab to next tab position.|NA| |y |y |y |y | | | |y | | | | | | | | Transpose character | |y |n |n |y | | | | |n | | | | | | | | Transpose line | |y |n |n |y |~ | | | |n | | | | | | | | Trim leading spaces |n |n |n |n |y |n | | | |n | | | | | | | | Trim trailing spaces |n |n |n |n |y |n | | | |n | | | | | | | | Automatic trim trailing |n |n |n |y?|n |O?| | | |y | | | | | | | | Undelete char (own buff.)|n |y?|y |y |y |n | | | |n | | | | | | | | Undelete word (own buff.)|n |y?|y |y |y |n | | | |n | | | | | | | | Undelete line (own buff.)|n |y?|y |y |y |n | | | |- | | | | | | | | Abort text region select |NA|y?|y |y |y |n | | | |y | | | | | | | | Clear buffer | | | | |y | |y | | | | | | | | | | | Repeat last cmd (+ multi)|+ | |n |n |n~|- | | | |n | | | | | | | | Repeat next cmd (+ multi)|+ | |+ |+ |n |n |+ | | |n | | | | | | | | Repeat mult. cmds (macro)|n |y |n |y |y |n |y | | |n | | | | | | | | | | | | | | | | | | | | | | | | | | Highlight selected text |NA|n-|y |y |y |n |y | | |y | | | | | | | | | | | | | | | | | | | | | | | | | | Markers |y |y |y?|y |n |n | | | |y | | | | | | | | | | | | | | | | | | | | | | | | | | Folding Editor |n |n |n |n |n |- |n | | |n | | | | | | | | | | | | | | | | | | | | | | | | | | Scroll/insert after EOL |n |M?|n |y |y |y |y?| | |y | | | | | | | | Scroll/insert after EOF |n |M?|n |y |n |- |y?| | |y | | | | | | | | | | | | | | | | | | | | | | | | | | Has limited line length |y |n |y |y |y |O?|n?| | |y | | | | | | | | Has limited on rows (12)|y | | | |y | | | | |y | | | | | | | | | | | | | | | | | | | | | | | | | | Larger window sizing (11)|y?|Y |n?|n?|y |? |? | | |n | | | | | | | | Smaller window sizing |y?|y |n |n |y |? |? | | |Y | | | | | | | | Window sizable (initial) |y-|y |n |n |y |n | | | |y | | | | | | | | Window resizable |y-|y |n |n |y4|n | | | |y | | | | | | | | Multiple windows (12)|n |y |n |y |n |n |#2| | |y | | | | | | | | Columnwise windows |n |n |n |n |n |n |n | | |y | | | | | | | | Rowwise windows |n |y |n |y |n |n |n | | |y | | | | | | | | Undo last command |- |y |y |y |y | |y | | |- | | | | | | | | Undo line changes |y |y |n |n |n | | | | |n | | | | | | | | Undo historically |n |y |n |n |n |n | | | |n | | | | | | | | Multiple views of buffer |n |y |n |y |- |? |y | | |y | | | | | | | | | | | | | | | | | | | | | | | | | | Automatic backup |n | |y |O |n |y |y | | |y | | | | | | | | Periodic backup |n | |n |y |y |y |y | | |n | | | | | | | | Interrupt recovery |y | |y |y |n |n |y | | |n | | | | | | | | Keeps session environ. |n |y |n |- |- |- |m | | |+ | | | | | | | | | | | | | | | | | | | | | | | | | | Status line(s) |~ |y |n |y |yO|y |y?| | |y | | | | | | | | Support slow terminals |y |n?|y |n |y |n |y | | |NA| | | | | | | | Support various terms. |y |y |y-|y-|y |n |y-| | |NA| | | | | | | | Supports keypads |n |y |y |y |y |y |y | | |y | | | | | | | | Supports func. keys |n |y |y |y |y |y |y | | |y | | | | | | | | Display line nums option |y |~ |n |~ |~ |y |~ | | |~ | | | | | | | | | | | | | | | | | | | | | | | | | | Scripting language |y |y |n |? |y-|y |y | | |n | | | | | | | | | | | | | | | | | | | | | | | | | | Mouse support (some vers)|n |y |n |y |y |n |n | | |+ | | | | | | | | Source provided (avail.) |n |y |n |n |y |n |n | | |! | | | | | | | | | | | | | | | | | | | | | | | | | | The following table indicates version availability for various machines. Y+ The version supports almost all basic functions plus some extensions Y The version supports almost all basic functions y The version supports most basic functions and may have some extensions or there is another editor (clone) which supporst most basic function. y- The version supports most basic functions and has some restrictions n+ There is no specific version, but there exists another editor with very similar features that supports many basic functions. n There is no similar editor available. ? It is possible that the could compile and run on this machine with little or no modification. - Versions are only available for specific models/version of this machine/OS. | | | | | | | | | | |u | | | | | | | | |FE| | | |X | |B |C |T |E | | | | | | | | |UM| |S |R |E | |R |R |u |M | | | | | | | | |LA|E |E |E |D |TE|I |I |r |A | | | | | | | Feature |v |LC|D |D |D |I |PV|E |S |b |C | | | | | | | |i | S|T |T |T |T |UE|F |P |o |S | | | | | | | -------------------------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ VAX/VMS |y |Y |Y |Y |? |n |y | | |n | | | | | | | | UNIX |Y |y |y |- |Y |y |- | | |n | | | | | | | | X windows versions |n |Y |? |n |Y+|? |? | | |n | | | | | | | | MS/DOS |y |y |n+|Y |n |y-|n | | |Y | | | | | | | | OS2 | | | | |n | | | | |y?| | | | | | | | MacIntosh | | | | |n | | | | |n | | | | | | | | Amiga |y |y+|n |n |Y+|n |n | | |n | | | | | | | | Atari |y |y |n |Y |n |n |n | | |n | | | | | | | | The term 'buffers' (as in multiple buffers) refers to the editors' ability to maintain multiple file editing sessions simultaneously 1 REDT can tally columns of numbers. Count, sum, average registers can be inserted in the text. 2 To qualify for cut/paste regions, the editor must be able to start/stop at a column within a line. Vi and Xedit multiple line delete/copy doesn't qualify. 3 REDT uses columwise like region selection to define the sort key. Previous line orientation is preserved so that multiple key sorts are possible. 4 REDT window resizing is supported in the Amiga and X windows version. (10) EDT,SEDT,and REDT offer interactive search and replace, but not regular expressions. Vi offers regular expressions but not interactive search and replace. Borlands editors do this very well (11) Does the editor offer window resizing greater than 80x25 if the terminal (Ie Xwindow) supports it? Can windows be made smaller than 80x25? SEDT and EVE/TPU will half window sizes for split screen and will extend window columns for 132 column mode terminals. EDT supports 132 column terminals. Vi may or may not size to the terminal's screen size depending on the implementation. Stevie (amiga and Atari?ST versions can be dynamically resized). EMACS resizes windows for split screens and will size windows for Xwindows. REDT will automatically size to the terminal screen size at startup but cannot be resized. The Amiga and Xwindow versions can be resized dynamically. (12) Max Max Max Max Editor Cols Rows Buffers Windows VI 160? ? ? 1 EMAX nolim? ? ? nolim EDT ~400? ? 1 1 SEDT ~400? ? 9 2 REDT adjust ~50000 9 1 XEDIT adjust nolim? 1 1 EVE nolim? nolim? nolim? 2 BORLAND ~130 nolim? nolim nolim adjust - The user may adjust this limit before or during the editing session. nolim - Limited only by available memory or other hardware limitations or a generally large arbitrary number. To qualify as having multiple buffers, the user should be able to (at least) easily move between buffers, and cut/paste (yank/put) text. _____________________________________________________________________ ______________ ____ | ^ | Roger Nelson rnelson@wsuaix.csc.wsu.edu \^^ | | ^ | Biological Systems Engineering Department |^^// ^^ | | ' ^ +|<---Washington State University \_ ^ _________| Pullman, WA 99164-6120 `-----' Work: (509)335-4714 Home: (509)332-8387 FAX: (509)335-2722