by Sean Peisert <firstname.lastname@example.org>
Many Macintosh users are only vaguely familiar with text editors, since SimpleText opens our text documents and we configure our machines with control panels and thus rarely need to edit configuration files. Even so, the explosion of the online world has created a strong demand for tools to read and edit text-only (ASCII) documents, since ASCII is the standard for most online written material, from news postings and email to ReadMe files, FAQs, and HTML.
You can open text files in a word processor, and for a lot of people that's fine. However, text editors are often a more effective alternative. Text editors bear some resemblance to word processors (they let you create, read, and edit documents), but they aren't primarily concerned with fonts, graphics, special characters, margins, or printed output. Instead, they're designed to let you manipulate text files in useful ways.
This article provides an overview of good, commonly available text editing tools. All these editors are top-notch programs, though some may suit your purposes better than others. Just because an editor is not included doesn't mean it isn't good, just that we didn't have space to include it. Similarly, this article doesn't cover two popular "monsters" of text editing - Alpha and the commercial version of BBEdit - which deserve reviews unto themselves.
Things to Look For -- When selecting text-processing tools, there are some factors to keep in mind. The first is whether the program can open files larger than 32K. This limit is the one of the main deficiencies of Apple's SimpleText, and though it isn't a problem for some files, many FAQs and other online documents are larger than 32K. All the programs here can open files larger than 32K.
One complaint about older text editors was a lack of support for "soft wrapping." No more - all of the editors here support soft wrapping, which is what most word processors do. (When a line of text reaches a margin or other preset limit, the program moves remaining text to the next line without altering the string of characters.) Hard wrapping, conversely, inserts a carriage return at the end of each visible line, breaking the lines "by force." Most email, news postings, and other online documents (including TidBITS issues) must use hard wrapping.
Different operating systems (Unix, DOS, and Mac OS) end hard wrapped lines differently. By default, the Mac uses a carriage return, Unix uses a linefeed character, and DOS uses both. Each of these editors deals differently with line wrapping and converting a file from one method to another; you'll want to select a tool that meets your needs.
BBEdit Lite 3.5.1, a freeware editor, is the smaller cousin of Bare Bones Software's BBEdit 3.5.1, a commercial text editor. Originally designed for programmers, BBEdit has evolved significantly over the years. BBEdit has now split into two programs (one commercial and one freeware). The differences between BBEdit 3.5.1 and Lite 3.5.1 are covered extensively in the ReadMe file distributed with BBEdit Lite.
BBEdit Lite lacks features many other editors have these days - such as drag & drop - and it's not scriptable. The newest incarnation of BBEdit Lite, however, supports soft wrapping and contains some Power Mac-native code. BBEdit Lite is one of the fastest editors around - its launching speed has to be seen to be believed, taking a mere three seconds to open a 900K file. (I used a Power Mac 6100/60AV, with plenty of RAM, System 7.5.3, and Connectix's Speed Emulator from Speed Doubler for my tests, with Power Mac-native or fat versions of programs whenever possible.) This blazing speed is four to six times faster than some of the other editors reviewed here.
BBEdit Lite has a small disk footprint, takes up a meager amount of RAM, and is Apple event-aware, so it can be used in conjunction with an application like Anarchie to view text documents. BBEdit Lite does not integrate directly as an editor for programming environments such as CodeWarrior or Symantec C++.
BBEdit Lite achieves its light RAM footprint by using system memory. If you open a document which would exceed BBEdit Lite's allocated memory, it asks the system for memory outside of BBEdit Lite's application partition. (Many applications do similar things with sounds or QuickTime.) If the memory is available, BBEdit will open the file without difficulty, so you can keep BBEdit's memory partition small and still work with large files.
BBEdit Lite is not devoid of cool features. Its powerful search engine supports grep expressions and multi-file searches. (In addition to searching for words, grep lets you search for complex patterns. Typical search engines can only look for words or phrases.) BBEdit Lite has a "balance" feature that identifies unbalanced sets of parentheses, braces, and quotes (handy for programmers and HTML writers).
Much of BBEdit Lite's power is built into BBEdit extensions. These extensions don't go in your System Folder; instead, you install them in a special folder provided by BBEdit and then choose them from a menu within BBEdit. Extensions have been written for a wide variety of tasks, such as HTML composition, inserting the date or time, sorting lines, and speaking text. These extensions make BBEdit Lite a more powerful tool than it first appears.
Emacs -- This port of GNU Emacs from Cornell University is exactly what you would expect from the GNU Emacs editor.
GNU Emacs is a widely-distributed text editor originally developed by the Free Software Foundation, with ports available for the Macintosh and PC, along with most flavors of Unix and other operating systems. Emacs uses "modes" which alter the keystroke bindings (what commands are "bound" to particular keys) and the way the editor functions. Modes are available for C programming, HTML authoring, standard text editing and many other purposes. This modularity makes Emacs one of the most versatile editors available.
This Mac version of Emacs doesn't require special keystrokes for basic use, but the keystroke bindings are what makes Emacs so powerful. Using Emacs to full advantage means memorizing over a hundred keystrokes, but you can learn along the way. This Mac version contains everything from the text editor mode of Unix Emacs (except email, news, and shell capabilities) and adds a few extra features. By default, text windows are light grey, making long hours in front of the monitor a little less tedious on the eyes. (All the colors used in the program can be edited.) Like most of the editors reviewed here, Emacs transparently supports Unix, DOS, and Mac ASCII formats. Since normal Emacs requires the use of "control" and "meta" modifier keys, Mac Emacs let you assign any modifier key to the role of control or meta.
Emacs's performance can be astounding. As a test, I tried replacing 2,088 occurrences of "from" with "to" in my 900K outgoing mail file. Emacs found and replaced all occurrences in 1 second, BBEdit Lite in 9 seconds, Plaintext in 62 seconds, Style in 3.5 minutes, and Tex-Edit Plus in 4 minutes and 45 seconds.
Regrettably, in the end Mac Emacs's Unix roots make it non-graphical and hard to learn. For instance, an Emacs window doesn't have a scrollbar, and doesn't allow text selection with the mouse. Emacs will interface with CodeWarrior, which is great for programmers who grew up using Emacs on Unix systems. The current version of Emacs for the Mac aligns itself with version 18.59 on the Unix side. The current version on the Unix side is version 19.x. The author of the Mac port has said that he would like to do a version 19.x port but we shouldn't expect anything soon.
[Alpha, a large, sophisticated text editor not reviewed here, also offers a lot of Emacs's functionality. -Geoff]
Plaintext 1.6.1 is a freeware text editor written by neurobiology professor Mel Park in his spare time. Plaintext's fortes are its simplicity and the variety of conversion options for text files from different platforms.
Plaintext has a few features distinguishing it from most other editors. First, Plaintext supports bookmarks. If you're working with a particularly long document and want to remember where you were reading or note an important passage, you can set a mark. You can jump quickly to any mark by selecting it from the Mark menu, and a file can contain a large number of marks. Plaintext contains column editing that enables you to select a vertical column, and Plaintext supports a small command-line language.
Plaintext's command-line commands are mostly Unix commands (find, ls, pwd, and cat, among others) which the author implemented out of respect for the power of the MPW shell (MPW stands for Macintosh Programmer's Workshop; it's a programming environment from Apple with Unix-like features.) These simple commands (activated by typing them and pressing Enter rather than Return) have less overhead than menus and dialog boxes and make Plaintext a smaller, sleeker application. Most of these commands are also available via the menu bar.
Plaintext has been updated several times recently, fixing bugs and adding a few features. Plaintext has a mostly full Apple event implementation but does not have an AppleScript dictionary. Plaintext supports drag & drop - a feature BBEdit Lite lacks - and Park has said he plans to add full AppleScript support and possibly have it support OpenDoc in the future.
SaintEdit is a $10 shareware editor that Craig Marciniak introduced in 1992 and updated to version 1.5b13 recently. After two years of relative hibernation, however, SaintEdit is about to revive itself in an enhanced 2.0 version. The new version is based on the WASTE engine and will feature a spelling checker, improved interface, AppleScript support, and drag & drop, as well as extensive conversion and find and replace options, Text-to-Speech support, and HTML macros. Craig has promised a public beta shortly.
Style 1.4, a $10 shareware tool by Marco Piovanelli. Termed a "styled text editor," Style supports different fonts, text styles (like bold), font sizes, colors, and text alignment. It also supports embedded sounds and graphics. Style can read and create SimpleText documents (with styles intact), and SimpleText can read Style documents (with styles intact) provided the document is saved as text rather than in native Style format. Style uses Marco's WASTE text engine which lets Style handle documents larger than 32K and helps give it the ability to use different languages via WorldScript - a definite boon for creating documents in languages such as Japanese or Russian.
Style supports some great technologies, like XTND, drag & drop, and Internet Config; in addition, Style is a fat binary and supports AppleScript recording. Style uses a memory management scheme similar to BBEdit and Tex-Edit Plus, where temporary memory is used when no space is available in Style's memory partition.
Some extra niceties of Style are a Window menu, smart quotes, auto-indent, a basic find and replace feature, linefeed translation, extensive scripting capabilities, and a special scripting menu to which Command keys can be assigned. Simply drop an AppleScript into the Style Script folder and the script appears as a menu item. Style comes with several sample scripts and droplets.
Tex-Edit Plus 1.7.0, by Tom Bender, is a $10 shareware editor which feels like a nicely enhanced SimpleText with a good blend of features found in both Plaintext and SimpleText. The current version is Power Mac native, uses the WASTE engine, and boasts large speed improvements. A Japanese version of Tex-Edit Plus 1.7 is available, and a French version should appear soon.
Like Plaintext, Tex-Edit Plus enables conversion of Mac, Unix, and DOS text files. A nice find and replace utility provides an easy means to manipulate tabs, carriage returns, and other special characters. The Modify Document menu contains some wonderfully useful conversion utilities, including converting curly and straight quotes, ellipses, dashes, spaces, and other special characters often used with word processors or desktop publishing programs.
Tex-Edit Plus has a huge Sound menu with options for speaking text and recording sound. Although all of the text editors reviewed can use different fonts to view documents, Tex-Edit Plus supports multiple fonts, sizes, and styles in one document, more like SimpleText, Style, or a typical word processor. The author comments that one of Tex-Edit Plus's bonuses is its ability to open SimpleText documents and display their formatting (including inline graphics), something none of the other editors quite do. Tex-Edit Plus also opens read-only SimpleText files.
Other useful features include inserting the date or time, going to any specified line number, drag & drop support, and text justification. One annoying caveat: Shift-Delete does a forward delete, and there doesn't appear to a way to turn this feature off. Otherwise the program appears to be squeaky clean. Tex-Edit Plus also uses temporary memory, like BBEdit Lite and Style, to open very large files instead of requiring the user to give more memory to the program and re-launch.
The author says a new version will be available in the near future which will show invisible characters and support AppleScript recording and QuickDraw GX.
Conclusions -- Which editor you use depends largely on your purposes. To create text files with graphics or multiple fonts, sizes or styles (like SimpleText ReadMe files), Tex-Edit Plus and Style are the only way to go - no other editors support these features. Style's fortes are undoubtedly its Script menu, the ability to command-click URLs (helped out by Internet Config), and the WorldScript-savvy WASTE engine. Tex-Edit Plus has a few extra niceties, such as a better (although slow) search and replace, sounds embedded in documents, and more translation options.
If you have no need to create files with graphics or multiple font sizes, consider BBEdit Lite, Plaintext, or Emacs. BBEdit Lite is a small, fast, elegant text editor, and its superb interface and reliability make it an excellent tool for programming, HTML editing, composing ASCII text, or simply viewing existing documents. Bare Bone's decision to include soft-wrapping in BBEdit Lite has made it a much more multi-purpose text editor, satisfying the demands of most anyone. Despite the fact BBEdit Lite is not fully (or even mostly) Power Mac native, it's still fast - much faster than the fully native Plaintext.
If you need extensive conversion capabilities not covered in BBEdit Lite's extensions or text conversions, Plaintext is a good choice. Plaintext doesn't have the extensive feature sets of other editors, but it's a solid program. Emacs is wildly different from any of the other editors; though I can't recommend Emacs to novice Mac users or the general public, though anyone used to the Unix version will find it an excellent port.