BBEdit 10 Release Notes

This page documents all feature enhancements and refinements included in BBEdit 10.0.

For detailed information on using any of BBEdit's features, please refer to the user manual (choose "User Manual" from BBEdit's Help menu).


BBEdit 10 requires Mac OS X 10.6 or later (10.6.8 or later recommended).

PowerPC-based Macs are not supported.


  • BBEdit now supports "packages". A package is nothing more (or less) than a collection of the sort of things you'd place into ~/Library/Application Support/BBEdit/ to extend BBEdit, but makes it easier to collect related items together and install them all at once, rather than having to manually install and manage items spread out between different folders.

    Structurally, a package is a folder whose name ends in ".bbpackage". (This is required.) The items immediately within the folder are reserved for definition and use by the application; please do not put anything at the top level of the folder that isn't documented.

    Immediately within the package folder must be a folder named "Contents" which is where all the action happens.

    The Contents folder may contain a folder "Resources" and a file "Info.plist". (These items may be absent currently, and are reserved for future expansion.)

    The Contents folder may also contain any or all of the following folders:

    • Clippings
    • Language Modules
    • Scripts
    • Stationery
    • Text Filters

    Each of these items behaves as though its contents were in the same-named folders in ~/Library/Application Support/BBEdit/. They're all optional, but obviously a package is useless if it contains nothing.

    Once assembled, packages reside in ~/Library/Application Support/BBEdit/Packages/.

  • Tag Maker and Edit Tag have been replaced by a single command: "Edit Markup", which now presents a completely new user interface.

    When you choose "Edit Markup" to edit an existing tag, the panel that appears presents a table of attributes and values. In the column on the left are attribute names; the column on the right is where you fill in values.

    When adding or editing attribute names, you can type in anything you want; but the combo box presents (and assists in the completion of) only attribute names that are valid for that tag.

    If a tag has any required attributes, those are added to the list and cannot be edited or removed.

    When making a new tag, the panel starts off with a combo box in the upper left corner; it allows only the selection of elements that are valid at that point in the document.

    In the upper right hand corner of the panel, there's an icon. When it's enabled, clicking it causes BBEdit to fill in "recommended" attributes for that element. (If it creates any attributes that you don't want, just clear their names, and they will not be inserted.)

  • There's a new command on the Window menu: "Show Unix Worksheet". This will open a worksheet document that is application-wide, and backed by a worksheet file saved in your Application Support/BBEdit folder. Like the Scratchpad, changes here are saved automatically.

    There's also a "Unix worksheet window" application property available to the scripting interface.

  • If you use Dropbox, you can relocate your BBEdit application support data to your active Dropbox folder, and BBEdit will use them there in preference to the locations in ~/Library/. In this way, you can easily share supporting files with multiple BBEdit installations (handy for multiple machines on your desk).

    Here's how:

    • Quit BBEdit if it is running.

    • Move your home/Library/Application Support/BBEdit to your Dropbox/Application Support/BBEdit/. Note that by default, there is no Application Support folder in your Dropbox, so create it if necessary.

    Note: The system does not support relocation of the core preferences data file (~/Library/Preferences/com.barebones.bbedit.plist), so you won't be able to synchronize preference settings.

    Note: The ability to share supporting files between multiple installations of BBEdit does not excuse you from the terms of the end-user license. You can use Dropbox to share the supporting files with whomever you like, but you must continue to abide by the terms of the license agreement.

    If you like, you can relocate "BBEdit Backups" from ~/Documents/BBEdit Backups to ~/Dropbox/BBEdit Backups/, and BBEdit will place your backups there instead. (As before, you can alias it to some other location.)

  • There is a new folder in Application Support/BBEdit/; named Setup. It contains data that previously was stored either in the application preferences or in the com.barebones.bbedit.preferenceData folder that was in ~/Library/Preferences/. Specifically: file filters, FTP/SFTP bookmarks, Grep patterns, web site settings, and key bindings are stored here; thus, they will be synchronized as well if you have placed your BBEdit application support folder in your Dropbox folder (as described above).

  • Slick new feature: preview templates and adjustable CSS for "Preview in BBEdit" windows. Here's how it works:

    • Place a fully structured HTML document in ~/Library/Application Support/BBEdit/Preview Templates/. It can contain anything you like, but should define the basic structure and appearance of the document. In the document, place a single placeholder: #DOCUMENT_CONTENT#.

    • Make a new document. Type some content into it. Use a few HTML tags, whatever, but it shouldn't have a full HTML document structure.

    • Preview the document. Note in the preview window, there is a row of items below the toolbar, containing two items: "Template:" and "CSS:". From the Template menu, you can choose the template that you saved in the first step. The contents of the document that you're previewing replace the #DOCUMENT_CONTENT# placeholder, so that when you preview, you'll actually get all of the chrome that's defined in the template, without having to replicate it for a fragmentary document that you might be working on.

    • If you place a valid CSS document in ~/Library/Application Support/BBEdit/Preview CSS, it will be available on the "CSS:" menu. Choosing it will apply that CSS to the preview as well.

  • BBEdit's multi-file search can now search inside of Zip files. This is automatic: if a Zip file is encountered while searching, its contents are explored, and any entries whose names indicate that they are text files will be unpacked and searched. Matches are displayed in search results as usual.

    This behavior can be controlled by a new option in the Multi-File Search window's "Options" sheet: "Search compressed files." When turned off, BBEdit will skip Zip, gz, and bz2 files while searching, even if they may contain compressed text files.

  • The bbfind tool has been updated with a new option: -C (or --no-compressed-files), which if present suppresses the searching of Zip/gz/bz2 files as described above.

  • There's a new command on the View menu, "Show File List" (or "Hide File List"). When a project or MDI window is in front, this command quickly toggles the visibility of the list(s) on the left.

  • Discrete Change Case options are now available on a submenu below the main "Change Case" command.

  • FTP browsers get a "Manage Bookmarks" command, which opens the Setup window and selects the Bookmarks list.

  • The Find and Multi-File Search windows get "Manage Patterns" and "Manage Filters" commands, which open the Setup window and select the Patterns (and Filters, respectively) lists.

  • There's a new command, on the Application menu: "Setup." This opens a window for configuring saved bookmarks, file filters, Grep patterns, and site settings for the Markup tools. Use the "+" button to add something, "-" to remove it, double-click (or Enter) to edit.

  • The "Text Colors" preferences now add an interface for loading and saving color schemes. The format for color scheme files is the same one used by BBColors and in fact, BBEdit will import any BBColors files that you have created.
    Color schemes live in ~/Library/Application Support/BBEdit/Color Schemes/.

    Note: Using the bbcolors command-line tool to make color changes will have no effect in BBEdit 10. If you were using it before, we recommend that you desist, since bbcolors works at cross purposes with BBEdit's built-in support.

  • Language pref customization now allows for per-language selection of a color scheme.

  • The View menu now has commands for toggling the visibility of various sections in the project/MDI file list. (These commands will show or hide the section entirely, versus using the disclosure triangle to collapse or expand them.) You can assign keyboard equivalents in the Menus and Shortcuts preferences, if desired.

  • If you turn off the Subversion menu (because you don't use it), BBEdit will also hide the Subversion-related contextual menu commands in project/MDI window file lists, and will hide the Subversion menu button at the bottom of the list pane.

  • The "Application" preferences get a new setting: "Open documents into the front window when possible." This controls MDI behavior: when turned on (the factory default), new and opened documents will be placed into the front window when appropriate; when off, a new window is created for each new or opened document.

  • There's a new expert preference: "AutoShowFileList". By default, it's set to YES, but if you set it to `NO', the file list will not automatically become visible when you open the second document into an editing window:

    defaults write com.barebones.bbedit AutoShowFileList -bool NO

  • You can now use the "Menus and Shortcuts" preferences pane to assign key shortcuts for Scripts, Stationery, and Text Filters.

  • The Export command on the File menu is now enabled when the active document's language supports previewing in HTML (Markdown is a good example of this). In that case, the command name on the menu will read "Export as HTML", and will bring up a save panel so that you can save the generated HTML into a file. Note that this command's availability depends entirely on the language module.

  • FTP browsers get a "Kind" column.

  • When MDI is turned on, documents are now opened (or created) in something that looks and behaves substantially like a project window. The Documents Drawer has been retired: use the file list on the left for navigation, or the document menu in the navigation bar. The "Show Documents Drawer" command has been removed from the View menu, the document drawer icon has been removed from the toolbar.

    This change confers several benefits:

    • It is now possible to save all of the documents in a window as a project, without having to go to the trouble to actually make a new project beforehand. (Open documents as desired, then use "Save Project" on the File menu.)

    • The file list is manually reorderable and can be organized using collections, which addresses a longstanding request from heavy users of the drawer.

  • Project windows grow a couple of new lists:

    • Recently Used:

      Shows documents recently opened into this project's window.

    • Scratchpad & Worksheet:

      Every project document carries its own scratch pad and worksheet document. This is shared for all users of the project, so if you wish you can use the scratchpad to make notes for other users; or store handy commands in the worksheet.

    These can be collapsed or hidden, if desired.

  • There is a new command on the File menu: "Print Selection". When chosen, it will print the selected range of text in the document.

  • There's a new control in the Editor preferences: "Line Spacing". You can use this to adjust the amount of space between lines of text in editing views. The minimum value is consistent with previous versions of BBEdit.

  • Verilog and VHDL language modules are now built in. These were previously written by Yasuhisa Kato.

  • Added support in HTML5 documents for all of the ARIA attributes and their pre-defined values.

    For a complete list of supported ARIA attributes and values, see here and here.

  • Added support for the include command/directive in ActionScript files. Included files are now listed in the file inclusions popup.

  • BBEdit now stores document state (window positions, etc) for files opened using the built-in FTP/SFTP interface.

  • Simple Emacs repetitions (ctl-U followed by a number) can now be used to insert repetitions of a single character. Try this:

    ctl-U 80 -

    (that is, type Control-U, the numeral 80, and then press the "-" key)

  • Contextual menus for projects (instant or otherwise) now include SVN "Show Status" when one folder is selected.

  • For languages backed by a codeless language module, BBEdit now generates fold points for delimited blocks. (A good example of this is the "Go" language module, available at, but there are no doubt others.)

  • The Ruby module now supports the standard callouts for the function popup, including FIXME:, NOTE: REVIEW: TODO: ???: and !!!: Example: #NOTE: this block will not work if the moon is full

  • Added ".md" and ".mdown" to the default suffix mappings for Markdown.

  • When doing a "Paste Column", BBEdit will perform a "fill down" in the selection range if the text being pasted contains no line break (or contains only a single line break at the end).

  • Added "Capfile" to the default name mappings for Ruby.

  • Full-screen mode is supported for editing windows on Mac OS X 10.7. Use the "Enter Full Screen" command on the View menu. (This command is hidden when running on 10.6.x.)

  • The dock menu has a new command: "New Text Document" It creates a new, empty text document in the same location File->New Text Document would have, then pulls BBEdit to the foreground.

  • The "Show items starting with '.'" switch in FTP browsers is now 'sticky'; whether it is turned on (or off) will be applied for the next time you create an FTP browser or use "Open from FTP/SFTP Server".

  • Callouts (FIXME, TODO, MARK, etc) are now supported in PHP comments.


  • Made some pretty significant changes to the way scripts and filters are installed and managed:

    1. The artificial separation between different types of scripts (Unix scripts, AppleScript scripts, text factories, Automator workflows) is gone.

    2. There are two fundamental types of runnable file: "text filters", which accept the selection range (or entire document, if no selection) as input, and which return text that replaces the selection range (or document); and "scripts", which do neither.

    3. The arrangement in the Application Support/BBEdit folder is as follows:

      • Scripts: contains executable Unix files, AppleScript files, text factories, and Automator workflows. These are run simply by loading the item and calling it directly, without providing any inputs. (Naturally, AppleScript scripts and Automator actions can query the application, and #! scripts have some information passed to argc and argv as usual.)

      • Text Filters: contains the same type of items as Scripts, but when chosen, the selected text (or front document contents, if there is no selection) is passed as a string to text factories, as a reference to a RunFromBBEdit entry point in AppleScripts, as text input to Automator workflows, and as a source to text factories. For Unix scripts, the selection is written to a UTF-8 temporary file, whose path is then passed in argv[1].

        If an AppleScript script does not have a RunFromBBEdit entry point, BBEdit will call its run handler, again passing a reference to the current selection range. AppleScript scripts and Automator workflows are expected to return a string which will replace the selection range; #! scripts and Unix executables should write to STDOUT, and the text processed by a text factory will replace the selection range.

      Thus, both folders can contain identical items, but how an item is invoked, and the effect that it has on the front document, will depend solely on which folder it lives in at the time of invocation.

    4. The menu arrangement is as follows: the Scripts menu (and palette) contains all eligible items from the Scripts folder. The "Unix Scripts" and "Unix Filters" items have been removed from the #! menu (and their palettes from the Window menu). The Text Factories menu has been removed. The "Apply Text Factory" commands on the Text menu are renamed to "Apply Text Filter", and are now at the top of the Text menu. The "Apply Text Filter" submenu shows all eligible items contained in the Text Filters folder.

  • When starting up, BBEdit 10 will copy items from your Unix Scripts, Unix Filters, and Text Factories folders into your Scripts and Text Filters folders, as appropriate. BBEdit leaves a cookie behind in its Application Support folder to indicate that this has been done.

  • The old modal Find dialog is gone.

  • The legacy (pre-8.7) file group format is no longer supported.

  • Removed the custom color menus and palettes. The system color picker interface is used everywhere.

  • The Super Get Info icon has been removed from the toolbar, and the "Open in Super Get Info" command has been removed from the View menu.

  • Removed support for importing of preferences and FTP bookmarks written by versions of BBEdit before 8.0.

  • Unix filters now operate as "pure" text filters: they take the selection as input (a path to a temporary file is passed as the first argument), and replace the selection with stdout. If anything is present on stderr, then the selection is not replaced, and the output is instead placed in the Unix Script Output window (as well as being parsed for errors). This was the default behavior before; it is the only behavior now.

  • The old "what to do with unknown file types" expert pref has been disconnected and is no longer supported. If a file's name matches an extension-to-language mapping in the Languages preferences, or if its name maps to something the system recognizes as text, then we'll treat it as a text file; otherwise we won't. This change primarily affects file filtering, as used during multi-file search and replace, folder comparison, disk browser and project lists, and various other places.

  • The Languages preferences have been reworked and re-imagined. Rather than presenting an overwhelming list of installed languages and filename extension mappings, per-language settings and extension mappings are now handled on a "customizing" basis.

    So, instead of having to root around for a language and then dig through its settings to manipulate them, and then figure out which ones should be different from factory settings, all you need to do is add a customization for that language, by using the "+" popup menu under the "Custom Language Preferences" list, adjust the settings in the sheet, and you're done.

    Similarly, if you find that a file name extension isn't being mapped to your desired language, just add it in the "Custom Extension Mappings" list. Custom mappings will always take precedence over built-in mappings if there's a conflict.

    The list of installed languages and versions no longer takes up space in the preferences window. as before, they're listed in the About box. In addition, the new "Installed Languages" button in the Languages preferences will display a list of installed languages and versions, as well as the default extension mappings for that language.

  • The Find Differences dialog box has been rewritten and modernized.

  • "Save Default Window" on the Window menu now shows the type name of the window whose defaults you are saving: "Save Default Project Window", "Save Default FTP Browser", etc.

  • The "Sleep" command is gone from the application menu. Instead, "Quit" behaves as "Sleep" used to. There is a new preference in the Application preferences, subordinate to "Reopen documents that were open at last quit". The new setting, "Restore unsaved documents", causes BBEdit to capture any unsaved document contents when you quit (including untitled documents) and restore them when it starts up. If you prefer the previous Quit behavior, turn this preference off.

  • The rules governing which windows contain new and opened documents are a little clearer now (applicable when MDI windows are in use):

    • When opening an existing document, BBEdit will look for a project document which contains the document's file. If there is one, the document will open into that project's window (which is brought to the front).

      If no eligible project is found, the document will open into the front MDI window (which will come to the front if it is not already there).

    • When making a new document using the command on the File menu, BBEdit will never create the document in a project document's window: it will use the front MDI window if available, or make a new window if necessary. If you wish to create a new document explicitly in a project, the "New Document..." command in the project window will create the file on disk for you and add it to the project.

  • The "Unix Scripting Tools" palette has been consigned to the dustbin of history.

  • The "Run..." command on the #! menu is now visible at all times, instead of being buried behind an alternate modifier.

  • Multi-file replace, and text factory application, can now be used to modify files inside of Zip archives.

  • It is now possible to edit and save documents opened from Zip files, not just view them. Edits are written back into the Zip archive.

  • The UI for creating and editing file filters has been completely rewritten.

  • Filename extensions are now hidden on the Scripts menu/palette as well as on the Text Filters menu/palette.

  • The "Arrange..." command on the Window menu has been replaced with a simple "Arrange", which cascades windows down and to the right, in customary fashion.

  • The "Get Info" command and its associated toolbar icon have been retired. (All of the relevant information is presented directly in the editing view itself, except for pagination, and if you care about that, you can run a print preview...)

  • Single-click line selection is now on by default.

  • The UI for the markup button palettes has been redesigned and rewritten.

  • The complement of markup tools palettes has been reduced; remaining are the main tool palette, the Utilities palette, and the Entities palette.

  • The Text Statistics status bar display now automatically toggles between selection-only and whole-document display: when there is a selection, it'll show status for the selection; when there isn't, for the whole document.

  • BBEdit will no longer warn you before closing an instaproject or a project window with open (non-dirty) documents. (The warning is unnecessary and just adds an extra step to the process.)

  • The "New HTML Document" dialog box has been rewritten and modernized.

  • The "Text Printing" settings have been removed from the Print dialog. This is to improve compatibility with current versions of Mac OS X, and to ensure compatibility with future versions of the OS. You can still modify the settings using the "Printing Options" command on the Edit menu.

  • The "Print Watermark" (or "rubber stamp") option has been removed; the system provides a facility which is actually more featureful, so the built-in feature is no longer required.

  • "Normalize Tag Case" has been removed, since what it did was always vaguely defined in terms of a setting that was not obvious. If you want upper case tags, use "Raise Tag Case"; otherwise use "Lower Tag Case".

  • Because Cmd-M and Cmd-Option-M are system standard keyboard equivalents (for Minimize Window and Minimize All Windows, respectively), the default keyboard assignments have been changed accordingly. The keyboard equivalent for "Edit Markup" is now Cmd-Control-M. (As always, you can edit this and other keyboard equivalents using the "Menus & Shortcuts" preferences.)

  • The discrete preference settings for controlling markup generation have been consigned to the dustbin of history. Current best practices are to generate markup in lower case and to always quote attribute values (even in cases where it might not strictly be necessary), and so that is the implemented behavior.

  • Drag-and-drop of files to create anchor and image tags no longer presents a UI; if desired, Edit Markup may be used after the fact.

  • All of the direct markup commands (on the Markup menu, and from the palettes) now go through the new Markup Builder panel, rather than the old dialogs.

  • Command-control-F is now Enter/Exit Full Screen Mode on 10.7, so it has been removed as a default for the "Font" markup command.

  • The preference system's internals have been extensively reworked, and the Preferences window has been completely rewritten and reimagined. Many obsolete preferences, as well as settings never used in daily operation, have been removed from the GUI. The name space has been overhauled, so virtually every preference key has been renamed. Existing preferences are converted where appropriate. The conversion is non-destructive, so old settings are left in place (but will never change).

  • Safe saves are now off by default. The benefits are abstract, but because the system's implementation changes file permissions and breaks hard links, the downsides (when encountered) outweigh the (abstract) benefits.

  • The ponies learned that their saronite shoes were not RoHS compliant and had a huge carbon footprint. So, they've switched to Five Fingers and Birkenstocks. They've also been studying the post-apocalyptic arts, because fortune favors the prepared.

  • The "Text Files Only" filtering in project lists and disk browsers now looks inside of files if necessary, for improved filtering accuracy. This may be disabled (restoring the behavior of previous versions) with an expert preference:

    defaults write com.barebones.bbedit InspectTextFileContentsForListFiltering -bool NO

  • The "Find Definition" sheet now does partial matches.

  • JavaScript and ActionScript now have separate expert preferences to control the display of anonymous functions in the function popup.

    defaults write com.barebones.bbedit ShowAnonymousFunctions_JavaScript -bool yes defaults write com.barebones.bbedit ShowAnonymousFunctions_ActionScript -bool yes

  • Tools (and their man pages) are no longer copied to /usr/local/bin, but are instead symlinked out of the application to those locations. Thus, updating the application automatically updates the tools, once the symlinks are installed.

  • Shift-key at startup no longer suppresses Dreamweaver integration or the loading of #! menu content.

  • Saved window positions for "property" windows (in which there is only one in the application, such as the Find window, or any of the floating windows) are now keyed by display configuration, for the convenience of those using the application on laptops that spend part of their time connected to an external display.

  • Source control form windows (used for commit with cvs, svn, and p4) now remember their position.

  • The option dialogs for "Run" and "Run…" on the #! menu have been modernized.

  • Made the spelling panel accessory checkbox a little less unnaturally large.

  • Vertical scrollbars in list views are now hidden when they're not required.