BBEdit 10.1 Release Notes

This page documents all feature enhancements and bug fixes included in the BBEdit 10.1 update.

For details on all the new features and enhancements offered in BBEdit 10.0, please see its release notes.

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.


  • "Open File by Name" has gotten a makeover. The window that opens is now modeless, and you can leave it open while doing other things in BBEdit. Activating the Open File by Name window (or choosing the menu command) will place keyboard focus in the search box and select its contents, so that you can just start typing. Use the "x" widget to clear your entry.

    As you enter a file name, BBEdit will search for the name as well as wildcard matches, and present all of the possible matches in the name field's combo box. If the name you enter contains wildcard characters (such as * or ?, e.g. NS*.h or index.*) then the entered name is used as a wildcard pattern. If the name you enter does not contain wildcards, then BBEdit will use it as a basis for casting a pretty wide net. Searching is capped to a maximum number of matches, so that performance is reasonable while typing in the dialog box. The factory default is 200, and may be adjusted:

    defaults write com.barebones.bbedit OpenByNameMaxWildcardMatches -int 200

    Search-as-you-type will first look for matches in one of two possible places, in order of preference: the files in the front (Z-order) project document; and the files in the active Xcode project. Then, if Xcode is running, BBEdit will look for files in the system frameworks and includes.

    If you desire, you can enter an absolute path (e.g. /usr/include/stdio.h), a home relative path (~/Library/), or a URL (http, ftp, sftp, and several other schemes are supported internally), and clicking the "Open" button will open the indicated item (assuming it exists).

    Otherwise, if no matches are found for the string you entered, the "Open" button will instead read "Search". Clicking the Search button will search for appropriate matches to the file name: a wildcard match if you employed any wildcard characters when entering the name; or an exact-name match if not.

    There's a search history; when you open a matched item, the string you used is stored. The magnifying glass contains a popup menu listing the recently used strings.

    Fun things to try:

    • Drag the "favicon" from your Web browser's address bar into the edit field, and note that the URL appears there. Now hit the "Open" button.

    • Type "NS*.h" while an Xcode project is open (or while Xcode is running).

    • Open a project in BBEdit which contains the sources for a Rails app, and type practically anything.

  • The Arrange command on the Window menu toggles to "Tile Two Front Windows" when you hold down the Option key. It does what it says.

  • The Multi-File Search window now has a target called "Frontmost Project". Ticking this option will add the frontmost project to the search targets.

  • It's now possible to preview things using "Preview in BBEdit" that aren't HTML or HTML generators. So, for example, if you preview a C++ document, you'll see an HTML rendering of the document as it appears in your editing window (and the same HTML that would be generated by using the "Copy as Styled HTML" or "Save as Styled HTML" commands). This is useful in situations where you want to typeset your code, and need to be able to experiment with different page templates and styles.

  • When previewing documents in a particular language, you can specify the default CSS to be used when previewing, simply by placing an appropriately named CSS file in Application Support/BBEdit/Preview CSS/. The name of the file should be of the pattern DefaultCSS_*.css, in which the * is replaced by the name of the language. So, for example, to designate a file as the default CSS for previewing Markdown, you'd name the file DefaultCSS_Markdown.css.

  • A new expert preference is available to control the generation of <img> markup:

    defaults write com.barebones.bbedit HTMLImageMarkupUseInlineStyleForImageSize -bool YES

    If HTMLImageMarkupCreatesSizeAttributes is turned on, then turning on HTMLImageMarkupUseInlineStyleForImageSize will instruct BBEdit to generate the image size as an inline style attribute:

    <img src="foo.png" alt="Some picture" style="width: 640px; height: 480px;" >

  • There's a new expert preference to control the default language for new untitled documents:

    defaults write com.barebones.bbedit DefaultLanguageNameForNewDocuments -string "<language name>"

    "<language name>" should be the name of a language shown as installed in the Language preferences. For example, if you want your new documents to be Markdown:

    defaults write com.barebones.bbedit DefaultLanguageNameForNewDocuments -string "Markdown"

  • Added a tweaky expert preference:

    defaults write com.barebones.bbedit ReplaceAllResultsIncludeTiming -bool YES

    When turned on, the sheet (or Growl notification) reporting the results will include the time required for the single-file Replace All operation that just completed.


  • Unix filters (run from the "Apply Text Filter" menu) now accept the selection on STDIN. This is a change from previous versions, in which BBEdit wrote a temporary file and passed it as argv[0]. If you have any Unix scripts in the "Text Filters" folder, you will need to modify them in order for them to continue working. On the other hand, this change will generally make Unix filters easier to write, and makes it possible to share Unix filters with text factories, because the latter has run their filters this way since forever.

  • When entering full screen mode, document windows are now sized to the same width as they were before entering full screen mode, which preserves the "distraction free" semantics of full screen mode.

    If you want your full-screen windows to consume screen real estate like a hungry wumpus, you can hold down the Command key while clicking on the "enter full screen" widget, or use an expert preference:

    defaults write com.barebones.bbedit FullScreenWindowsHogScreen -bool YES

  • Full-screen FTP browser windows are not particularly useful, so they're no longer full-screen-able.

  • Support for reading QuickTime movies has been removed (it was off by default, anyway).

  • Made some ergonomic improvements to the markup panel:

    • Promoted attributes are now filled in reasonable order; e.g. href is first when editing an anchor tag;

    • For URI attributes, the file picker button is moved to the right-hand side of the edit field, for a more reasonable tab order;

    • The selection range is now placed on the first attribute value, rather than on the first attribute name.


  • Fixed bug in which opening a gzip or bz2 compressed file would in some circumstances cause non-wonderful things to happen.

  • Eliminated the pause when enumerating a project for multi-file search/replace or text factory application. (You'd need close to a million files in the project to notice.)

  • Corrected incorrect key in the Expert Preferences help for "report single-file Replace All results" expert preference.

  • Fixed bug in which the "Any/All" setting for file filters was lost when editing a filter (and got reset to "All" internally, even though the editing panel indicated "Any").

  • Fixed bug in which the "(current criteria)" setting and terms were lost when the Multi-File Search window was closed.

  • Fixed bug in which it was not possible to clear keyboard equivalents for scripts, filters, or clippings.

  • Fixed bug in which project documents would incorrectly check for self-modification before auto save, and a crash which would occasionally occur thereafter.

  • Fixed bug in which FTP bookmarks weren't correctly loaded or saved in the Setup UI when certain components (such as user name or password) contained URL-unsafe characters.

  • Fixed bug in which changing the soft wrap mode setting in language customized options didn't take effect.

  • When using the Markup Panel to apply markup for <p>, <li>, <th>, and <td> by converting existing unformatted text, the markup and attributes are applied to all eligible lines of text.

  • If something that looks like a URI is selected when choosing the "Anchor" markup command, an href attribute will be populated using the selected text.

  • Corrected factory default of ClippingsIgnoreTrailingReturns expert preference.

  • When generating image markup using the Markup Panel, alt, height, and width attributes are now created (or updated) when an image file is selected. The presence of these attributes depends on the HTMLImageMarkupUsesFileNameForAlt, HTMLImageMarkupCreatesSizeAttributes, and HTMLImageMarkupUseInlineStyleForImageSize attributes.

  • Fixed incorrect default of MakeShebangScriptsExecutable expert preference.

  • Improved the contrast of the I-beam cursor when used over dark backgrounds.

  • Fixed a drawing glitch which would occur when revealing an item in the project list would cause it to scroll by more than a screen's worth.

  • Generated image markup will now make a more educated guess for the alt attribute than the image file's name, if necessary. If the image file name must be used, the extension is stripped first.

  • Fixed bug in which a project window was inappropriately activated in situations where changes to the filesystem caused changes in the project list selection.

  • Fixed crash which would occur in certain situations where, due to external file system changes, multiple items in the Currently Open Documents list ended up pointing at the same location.

  • Fixed bug in which full document paths were not displayed on the main Window menu in situations where they should have been.

  • Fixed bug in which too much work was being done at window refresh time, leading to observable delays while typing and when running scripts in some situations.

  • Fixed bug in which closing a document which had only dirty state would attempt certain inappropriate operations, some of which took an observable amount of time, others of which resulted in unintended effects (for example, if the document didn't have unsaved changes, the modification-date test still took place, which would result in an alert if another process had changed the file).

  • Worked around a bug in the OS (9983127) in which dragging text from an editing view to an application's icon in the Dock resulted in the receiver creating a window full of byte-swapped Unicode rather than the text that BBEdit supplied.

  • Fixed bug in which selecting a document in a project window would cause the project window to move, in cases where the document was the first one being opened in the window, and had saved state of its own.

  • Fixed crash which would occur because the "Edit Filter" button in the text factory options dialog was not disabled when it should have been, allowing an inappropriate operation.

  • In addition to the beep when starting with Shift or Option held down, BBEdit will now notify with Growl.

  • Fixed a bug in which \end commands which close off math-related blocks in TeX documents were not being syntax colored as commands (keywords).

  • Fixed a bug in the Ruby language module where it was being a little too aggressively lazy in looking for weird operators. So =` is now seen as an assignment followed by the opening delim of a type of string token, rather than some Frankendelimiter. (As if Ruby would allow you to have weird delimiters...)

  • Fixed bug in which documents would open but fail to show the insertion point (or would show the insertion point but not accept typing) in situations where Editor_AlwaysOpenQuickFind was turned on.

  • Fixed bug in which hiding the file view while it had keyboard focus would leave the focus in the Quick Find box if it was visible, rather than in the edit view.

  • Differences lists no longer have a horizontal scrollbar.

  • Fixed bug in which expanding a folder in a project window's file list didn't put close widgets in the items corresponding to open documents.

  • Fixed bug in which conflicts were not detected when assigning a keyboard equivalent for a script/filter/etc in the Menus & Shortcuts preferences.

  • Removed the default block-comment delimiters for the Ruby module, since using them with Un/Comment creates more problems than it solves.

  • Eliminated the tendency to touch the "Not Key Shortcuts" setup file when starting up (and at other times).

  • Browser windows (disk, Zip, results, etc) get a Text Statistics status bar item.

  • Fixed crash which would occur when using "Update Document" on a document which hadn't been saved to disk.

  • Changed the way we save files in zip archives so Adobe Digital Editions doesn't freak out trying to read them.

  • The Setup window now remembers its position on screen.

  • Fixed bug in which changes made in the Bookmarks setup editing panel weren't saved when you clicked on the "OK" button (instead of using Return or Enter).

  • Fixed bug in which custom per-language color schemes didn't load the correct colors at startup time.

  • Made a change to guard against unwanted color value changes when choosing colors in the Text Colors preferences.

  • When searching for HTML includes during an "Update Document" or "Update Site" (or folder) command, BBEdit will now look in the centralized HTML Templates folder for includes, if they are not found in a more proximate location.

  • Added some more type identifiers to the advertised list of editable file types.

  • Added a default suffix mapping so that .scss files open as CSS.

  • When an CSS document gets reloaded from disk, open preview windows are asked to refresh. (This is useful when looking at CSS generated by SASS or other automatic systems.)

  • Made a change to the WebKit caching policy for preview windows, so that reloading to pick up changes from external files should work as desired.

  • The Markup Builder panel does not try to complete single-character tags, making "a", "i" and so forth much easier to type.

  • Single-file "Replace All" now runs dramatically faster. Typical performance gains will be between 4x and 5x, but if your machine has more than two cores, you may see even bigger improvements.

  • Fixed crash which would occur when double-clicking in the "Recent Documents" list to open a remote (FTP/SFTP) document.

  • Eliminated latency in enable/disable of markup tools palette buttons, which would cause them to be disabled immediately after window activations, which in turn led to them appearing to ignore the first click.

  • Fixed bug in which compiled mach-o executables didn't appear on the Apply Filters or Scripts menus.

  • Text completions that depend on examining the document's contents (both for tokens in the document, and for possible completions from the system spelling checker) are now skipped when the document is above a certain size. The cutoff can be adjusted with an expert preference:

    defaults write com.barebones.bbedit MaxDocumentLengthForCompletionTokenizer -int N # N is an integer value, expressed in characters. The factory default is 1048576.

  • Fixed bug in which quitting BBEdit while a window was in full-screen mode (on Lion) would cause the window to reopen at its full-screen size, but not in full screen mode. (The window is reopened at the size it was before it was put into full screen mode.)

  • Let the system know that it's OK for BBEdit's palettes to function as auxiliary windows in full-screen mode.

  • Dropping a .bbpackage (BBEdit package) on the application now offers to install it for you.

  • Fixed bug in which "Show Files" or "Hide Files" would resize a window when it was in full-screen mode, leading to various sorts of antisocial behavior.

  • Fixed bug in which double-clicking on the closing angle bracket of an HTML or XML tag would in some circumstances shorten the selection inappropriately.

  • Fixed bug in which editing a file filter in the Setup window that had been added using the Setup window directly (versus having been created somewhere else) would write the changes out to permanent storage correctly, but not display them when viewing the filter in the Setup window in that session of BBEdit.

  • When the Live Search command is executed, the text in the Live Search field is selected (making it easier to overtype with a new string).

  • Fixed bug in which doing a "Save As" to change an HTML/XML file's encoding, and the selected encoding was in conflict with the document's internal metadata, upon confirming the warning sheet, the document would be saved with its previous encoding, rather than the selected encoding.

  • Historical backups are once again enabled for documents opened via built-in FTP/SFTP.

  • Fixed crash which would occur when trying to close a results window (search, unmappables, etc) after deleting the last item from the list.

  • Fixed bug in which windows closed from full-screen mode would have their full-screen size remembered in the document state, which caused them to take up all available space upon being reopened.

  • Fixed crash would could occur while using the close box to close a project or editing window with multiple open documents.

  • Fixed bug in which values entered in to the Sites setup editor panel didn't stick sometimes.

  • Fixed bug in which "Open File by Name" was inappropriately treated as "Open Selection" in projects which had a selected file and no active editing view.

  • Fixed bug in which paths dropped into text views or shell worksheets weren't properly delimited with the appropriate separator (space for worksheets, line break for text views).

  • Fixed bug which prevented CSS files from showing up in the "Preview CSS" menu in live preview windows, and which also broke language-based clipping set auto switching.

  • Preview windows now remember the page template and CSS that were in use for the document being previewed.

  • Fixed bug in which "Reveal in Project List" didn't work if the parent folder(s) of the document being revealed weren't open.

  • Corrected bundle versions, Get Info short strings, and copyright dates in the built-in language modules.

  • Made a memory management fix and modernized some code in the bbdiff tool.

  • Made changes to deal with unexpected circumstances that arise when using the Dictionary popup window.

  • Fixed a longstanding bug where restoring the checked items in a search source list would sometimes synthesize, then select an item in "My files & folders" instead of leaving the Disk Browser or Instaproject selected.

  • "Enable Shift-Delete for forward delete" is (once again) in the Keyboard preferences.

  • After moving numerous mountains and ignoring several inconsequential molehills, the cause of The Great TeX Math Environment Syntax Coloring Inconsistency Bug of Pain (2011 Edition) was finally identified and killed in battle. Lok'tar! Pnoies fhtaghn!

  • Fixed bug in which using the SurfNextPreviousInDisplayOrder expert preference had no effect when SortWindowsAndDocumentsByName was turned on (which would only have been possible for existing installations upgraded to 10.x).

  • The document popup menu in the navigation bar now reflects the same ordering as the file list, i.e. the display order of the documents open in that window, and correctly updates if items are manually reordered in the Currently Open Documents list. The SurfNextPreviousInDisplayOrder expert preference only affects the ordering of next/previous, using either the arrows in the navigation bar or the "Next Document"/"Previous Document" commands.

  • Fixed bug in which some Subversion menu commands were inappropriately enabled when a non-text document was active.

  • Fixed a bug in the TeX module which prevented syntax coloring of commands within the parameter blocks of \newcommand (and other, similar commands), but then allowed some of the syntax coloring during edits of that block. The syntax coloring should now be present and stable.

  • The horizontal scrollbar in editing views now scales to an approximation of the longest line in the view, when soft wrapping is turned off.

  • Fixed bug in which Open File by Name would prompt you to choose another search directory (when doing a forced search), and then ignore your choice.

  • Fixed bug in which scrolling a text factory window would cause the items to draw blank.

  • Fixed bug in which Python decorators weren't colored when they should have been.

  • Fixed bug in which special-purpose results windows and source control commit windows didn't remember their positions on screen.

  • When running #! scripts, we now set up the environment for UTF-8 I/O (for Python in particular).

  • Fixed crash which would occur when trying to make a new disk browser after having previously used "Save Default Window" to hide the edit view.

  • Fixed bug in which disk browser window defaults weren't applied properly when they included a hidden editor view.

  • Fixed a bug in the Java module, wherein it would be confused by some flavors of nested array structure, get distracted by shiny, and start calling any old thing a function (in the function popup).

  • Pass -f plain to ri to get the correct output format back when using "Find in Reference" in Ruby code.

  • Fixed bug in which dragging a document from one window's file list to another would fail to remove it from the originating window as it should have.

  • Fixed bug in which choosing "Custom Settings" from the color scheme popup in the Text Colors preferences when "Custom Settings" was already selected, would set the colors back to factory defaults.

  • Fixed bug in which the drag image for text selections was blank or incomplete.

  • The super-ultra-meta-extended keys on the Apple keyboard (F16-F19) are now supported as keyboard equivalents and can be assigned in the Menus & Shortcuts preferences (or Clippings, Text Filters, Scripts, etc palettes) as desired.

  • Fixed bug in which undoing after typing to replace a column selection would scramble the text in the editing view, and/or crash.

  • Fixed bug in which URI attribute values were not properly entity decoded/encoded on a round trip through the Markup Panel.

  • Corrected the internal HTML/XML "Find in Reference" templates to remove percent escapes, since the correct escaping is already applied before sending the URL out for dry cleaning.

  • Fixed bug in which using the refresh button in an FTP/SFTP browser window would not pick up listing changes in cases where files had been deleted using the browser, and a like number of files had been added on the server.

  • Fixed bug in which multi-file search would fail when encountering a file that looked enough like a Zip archive to pass the test, but which wasn't really a Zip archive.

  • When typing an incompletely qualified URL (e.g. instead of into the Open File by Name window, BBEdit will now postulate the path instead of reporting an error.

  • Fixed bug in which dragging the last document from a non-front window's Currently Open Documents list into the Currently Open Documents list of the front window would cause the latter to (incorrectly) close and leave an empty window behind.

  • Restored Startup Items and Shutdown Items to working order.

  • Fixed bug in which keyboard input intended for editing views was ignored in some situations.

  • In HTML5, <button> is now correctly recognized as a "flow" and "phrasing" element, as well as "interactive."

  • Edits in the fields of the custom language sheet are now correctly committed when you confirm the sheet without first tabbing out of the field.

  • Filename extension mapping for languages is now case-insensitive.

  • Restored the ability to specify a custom terminal application:

    defaults write com.barebones.bbedit TerminalBundleID -string ""

    This affects the behavior of "Run in Terminal" and "Go Here in Terminal". The factory default is for the OS-supplied Terminal application.

  • Removed the do-nothing help buttons from the Preferences window.

  • Corrected incorrect pref pane reference in the First Run help page.

  • Corrected some anachronisms in the First Run help and in the tutorial.

  • Removed incorrect block comment delimiter defaults from the Tcl language module.