Today's Best Tech Deals
Picked by Macworld's Editors
Top Deals On Great Products
Picked by Techconnect's Editors
Since its 1993 debut, Bare Bones Software’s BBEdit has been the text editor of choice for Mac-based coders, system administrators, and Web developers. Alas, successive upgrades have tended to address one group or another. But all BBEdit users will be happy this time around: Version 8.0.3 is a solid upgrade in all areas.
The new version of BBEdit features many convenient improvements. BBEdit can now open multiple documents in the same window. These documents are listed by name in the new Documents Drawer, or in the new Navigation Bar’s pop-up menu; both the drawer and the menu can be hidden or shown. You can drag documents into a window’s drawer, or between the drawers of different windows.
The Sources Drawer is a new addition to the familiar Find & Replace window. This drawer lists open documents as well as those in any of BBEdit’s Disk Browser windows, defined Web site folders, and any other folders you specify. A single find-and-replace operation can now reach any combination of files and folders.
In previous versions you had to script BBEdit in order to run text operations in batches; the Text Factory now performs that function for you. A factory is comprised of multiple text operations that are performed in sequential order; each operation is presented as a pop-up menu in the Text Factory window. These operations can be any of those listed in the Text menu, a custom Replace All function, a Unix script, or an AppleScript. You can re-order operations by dragging-and-dropping them in the list, but this capability is not obvious in the interface. Saved Text Factories can also be executed by BBEdit’s little brother, TextWrangler 2.0.
BBEdit’s markup tools now support Cascading Style Sheets (CSS) version 2.1. The popular open-source program HTML Tidy is now available in the Markup menu. HTML Tidy can quickly convert your code from HTML to XHTML, as well as reformat the code for bandwidth conservation. Unlike the other markup tools, however, Tidy isn’t available in the HTML Tools floating palette.
The new Preview Server is a great help to Web developers. Where BBEdit used to render just your document’s static code, it now processes any embedded server-side scripts or includes prior to display. The resulting page is a complete representation of your Web project, scripts and all. Preview Server uses Mac OS X’s Apache Web server to accomplish this trick, and as such, a number of external criteria must be met: the document must be within a defined HTML Web Site (in BBEdit’s preferences) and stored in a folder Apache serves; Web Sharing must be enabled in System Preferences; and any scripting languages (e.g. PHP or Perl) must likewise be enabled via Apache’s configuration files.
Advanced Code Creation
Since version 7, BBEdit has supported change tracking and source-code versioning via the open-source Concurrent Version System (CVS); version 8 adds support for the commercial Perforce source configuration management system. Integrating BBEdit with either tool requires that you be intimately familiar with the details of the tool’s configuration. If you are, you can submit files, apply changes, and synchronize repositories, all as one might expect.
In a savvy integration of OS X’s graphical and Unix environments, BBEdit can be invoked from the Terminal with the command line bbedit utility. Similarly, the new bbdiff is a command-line counterpart to BBEdit’s familiar Find Differences command.
Macworld's Buying Advice
BBEdit has always been the top dog among Mac text editors, and one of the finest applications around. With its useful features, insightful enhancements, and savvy integration, this upgrade does not disappoint.
[ Andrew T. Laurence is a network administrator, Mac geek and freelance writer. His Web site provides reviews and analysis of the Mac mini. ]The Preview in BBEdit now includes results from server-processed scripts.Text Factory performs text operations in a series. You can re-order the operations by dragging within the list.