BBEdit 8.5 Release Notes

BBEdit 8.5 is a major release. This page outlines all the new features and feature enhancements included in BBEdit 8.5, and provides details about all other changes and bug fixes.

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

For information on changes made in previous versions of BBEdit, please see the release notes archive.


BBEdit 8.5 requires Mac OS X 10.3.9 or later; Mac OS X 10.4 or later is necessary for Automator support.

This version is a Universal application: it runs natively on both Intel-based and PowerPC-based Macs.


Note that the default position is saved separately for different types of windows: for example, file groups’ default window position is distinct from editing windows’. Also, the preference is keyed by your screen configuration, so if you frequently switch screen layouts (as when connecting an external display to a PowerBook), you can save distinct defaults which are applied for different screen configurations.

The URL templates are customizable in the Languages preferences; click the “Options” button to edit the URL template (along with other language-specific settings, such as the comment delimiters). Note that the URL can be any well-formed URL of any scheme supported by the OS or installed applications. (Witness the above x-man-page:// usage.) The string “SYMBOLNAME” (without the quotes) is replaced where it occurs in the template.


In future, it may be possible to substitute other words where “lookup” is to provide finer control over perldoc, pydoc, and ri.

When sent to BBEdit, these URL forms trigger documentation lookup and display (the results are in BBEdit itself).

If desired, other applications may register to handle these URL schemes; if so, it will serve everyone’s interest if the URL forms are mutually agreed upon, documented, and implemented.

If auto-recovery information is stored (it’ll always be in ~/Library/Application Support/BBEdit/Auto-Save Recovery/), then at next launch, BBEdit will reopen and restore the contents of any documents for which recovery information exists.

The “interval” setting controls the frequency with which this information is written out; the shorter the interval, the smaller the window for data loss in the event of a system crash, but the more frequently your disk will be used (the latter being a consideration for laptop users running on battery). The factory default interval is ten minutes.

Auto-save recovery can ensure that all is not lost in the event of a disaster, but will not protect you against events that render your disk unreadable, nor is it a substitute for manually saving a document after making a very important change to it.

-*- x-counterpart: ExampleStrings.R; -*-

…typing Control-Tab would look for the file “ExampleStrings.R”.

Opening and browsing are the most useful; for example, you can now browse the archived logs in /var/log without having to decompress every one.

On initial save, or save as, BBEdit looks at the destination file’s extension to determine if the file should (still) be gzip compressed. (.gz and .gzip are recognized.)

Note that this use of Control-left-arrow and Control-right-arrow replaces the old behavior of using these key combinations to scroll horizontally. If you prefer the old behavior, you can do the following from the command line:

defaults write com.barebones.bbedit Editor:ControlArrowCamelCase -bool FALSE defaults write com.barebones.bbedit Editor:ControlArrowHScroll -bool TRUE

After invoking the command, type a filter term for the clipping you want to insert. The arrows keys cycle through the list, return (or double-click on a clipping name) will insert/apply the clipping.

You can press escape to dismiss the insert clipping panel.

Like other menus in BBEdit, and the system script menu:

Translate Text to HTML
Translate HTML to Text
Format Markup
Optimize Markup

These commands function similarly to their analogues on the Markup → Utilities menu.

  1. Make a new document.

Note that if you’re authoring a large clipping set, you’ll probably find it easier to use some other means to generate clippings: “Save Clipping” is most useful for creating a clipping “on the fly” as you determine the need for them.

The display of this gutter is controlled globally in the “Text Status Display” preferences, and can be set in the “Status Display” options on a per-language basis.


Fold Selection
Unfold Selection
Expand All Folds

defaults write com.barebones.bbedit Clippings:CompletionEnabled -bool YES

Some tricks:

This behavior can be turned off if desired:

defaults write com.barebones.bbedit Services:AskXcodeForOpenFileByName -bool NO

To override the built-in implementation, write a script of the following form, and save it as a compiled AppleScript named “AskXcodeForFilePath.scpt” in ~/Library/Application Support/BBEdit/ :

on askXcodeForFilePath(fileName) tell application “Xcode” tell active project document (full path of every file reference whose name is fileName) end tell end tell end askXcodeForFilePathp. The “askXcodeForFilePath” entry point takes a single parameter (the name of the file we’re looking for), and should return a list of strings, each element of which is the full path to a file matching that name. (The script will not get called if wildcard-matching is turned on, so you don’t need to support filename globbing or the like.)

1. Truly “anonymous” function detecting is optional, and can be controlled by the “Show Anonymous Functions” setting in the JavaScript language options (Languages preferences);

2. Functions that were previously undetected completely are now shown as regular functions. That is, functions which are assigned to variable or object properties, like this:

var foo = function() { … }; = function() { … }; var bar = { bat: function() { … } };p. In the above examples, foo(), bar() and bat() would all be listed in the function popup.

3. Nested functions are supported, and are listed properly in the function popup.

function a() { var b = function() { … } b(); }p. 4. ‘$’ is recognized as a legal character in identifiers.

5. The keyword list is updated and expanded.

6. Regular expressions are detected and colored separately from strings.


defaults write com.barebones.ProductName Services:TranslucentDrags -bool NO

Note: Change “NO” to “YES” to enable translucency in drags.

If desired, these settings can be changed from the command line:

defaults write com.barebones.ProductName Services:QuickTimeImages -bool NO defaults write com.barebones.ProductName Services:QuickTimeMovies -bool NO defaults write com.barebones.ProductName Services:DontTranslatePDFs -bool YES

defaults write com.barebones.bbedit Services:DefaultUnixShell /path/to/shell

defaults write com.barebones.bbedit BrowserWindows:ShowIcons -bool NO
defaults write com.barebones.bbedit BrowserWindows:HierarchicalResults -bool NO
defaults write com.barebones.bbedit BrowserWindows:NodesExpanded -bool NO

defaults write com.barebones.bbedit DifferencesResults:ShowIcons -bool NO

“Mac (CR)”
“Unix (LF)”
“Windows (CRLF)

If you wish to override this, you may do so from the command line with a “defaults write” command to change the “Services:ScriptEditorBundleID” preference; for example, to set the script editor to Script Debugger:

defaults write com.barebones.bbedit Services:ScriptEditorBundleID com.latenightsw.ScriptDebugger

defaults write com.barebones.bbedit Glossary:IgnoreTrailingReturns -bool YES

defaults write com.barebones.bbedit Filing:WarnMalformedUTF8 -bool YES

If you want to adjust the Hide Palettes or Keep Windows Arranged options, you can do so thusly:

defaults write com.barebones.bbedit DifferencesResults:HidePalettes -bool TRUE defaults write com.barebones.bbedit DifferencesResults:KeepWindowsArranged -bool TRUE

defaults write com.barebones.bbedit Misc:CVSDirsAreInvisible -bool NO

defaults write com.barebones.bbedit Windows:ZoomInPlace -bool NO

defaults write com.barebones.bbedit Spelling:UseExcalibur -bool YES

There’s a new hidden preference that can be used to bypass the default encoding:

defaults write com.barebones.bbedit Filing:Filing:AskForUnguessableFileEncoding -bool YESp. If this preference is set, then the application will ignore the preference and always drop the sheet asking you to choose an encoding.

Navigation Bar → Open Files Menu (Ctrl-Opt-F)
Navigation Bar → Open Function Menu (Ctrl-Opt-N)
Navigation Bar → Open Includes Menu (Ctrl-Opt-F)
Navigation Bar → Open Marker Menu (Ctrl-Opt-M)


The following problems have been corrected in BBEdit 8.5: