BBEdit 11 Expert Preferences

BBEdit Expert Preferences

There are a number of behaviors in BBEdit for which there are no UI controls in the Preferences window; this is typically because the settings are so obscure that placing them in the Preferences window would just make it complicated. In fact, some of these settings were in the Preferences window, and have been removed in order to simplify the interface; in such cases, any changes you made previously will be honored, even though the UI in the Preferences window is gone.

Note: Adjusting the settings described here involves using the Unix command line (in the Terminal or a suitable replacement, or in a BBEdit shell worksheet). Most changes will not have any immediate visible effect, but will instead take effect the next time you perform a relevant action, or, at the latest, after quitting and restarting BBEdit.

Table of contents:


Clippings, Editing and Text Completion

  • BBEdit supports “camel case” navigation: press Control-left-arrow or Control-right-arrow to jump to the next (or previous) transition from lower-case to upper-case characters (or a word boundary, whichever comes first).

    Note that this use of Control-left-arrow and Control-right-arrow replaces the pre-8.5 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 NO

    defaults write com.barebones.bbedit Editor_ControlArrowHScroll -bool YES

  • If there is a partial word to the immediate left of the insertion point, the “Insert Clipping…” command will attempt to autocomplete that word based clipping names in the current and universal set (using a “begins with” style match.) If you wish to disable the autocompletion:

    defaults write com.barebones.bbedit UseClippingsForCompletion -bool NO

  • When you backspace from the insertion point, BBEdit will delete a tab stop’s worth of spaces if there are only spaces (and tabs) between the insertion point and the start of the line on which you’re editing. This may be disabled by an expert preference if desired:

    defaults write com.barebones.bbedit Editor_DeleteIndentationWhitespaceToTabStop -bool NO

  • Automatic word counting is disabled for documents over a set size threshold, in order to avoid needless delays when working on very large documents. The factory default is 16M characters, but you may change this limit as desired using the following expert preference:

    defaults write com.barebones.bbedit Editor_AutoWordCountSizeThreshold -int 16777216

    #Setting it to zero disables the limit check entirely.

  • Since “Find All Misspelled Words” is pretty much pointless on files over a certain size, the maximum amount of text checked by this command is limited to 1M (1024 squared) characters. This may be adjusted with an expert preference:

    defaults write com.barebones.bbedit Editor_SpellCheckLengthLimit -int NN

    where “NN” is some decimal value. Use -int 0 to suppress the limit altogether.

  • 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:

    defaults write com.barebones.bbedit MaxDocumentLengthForCompletionTokenizer -int NN

    where “NN” is some decimal value. Use -int 0 to suppress the limit altogether.

  • By default, the “Balance” command (or double-clicking on a delimiter to balance) does not include the delimiters in the resulting selection. If you would like for it to do so:

    defaults write com.barebones.bbedit BalanceIncludesDelimiters -bool YES

  • When using the Un/Comment command, if nothing is selected, BBEdit will use the line comment delimiter to comment (or uncomment) the entire line. If you would prefer that BBEdit insert the line-comment delimiter at the insertion point instead:

    defaults write com.barebones.bbedit CommentWholeLineWithInsertionPoint -bool NO

  • By default, the “Shift Right” command on the Text menu will not add indentation to lines that are empty or consist entirely of white space. If you would prefer to indent every line, regardless of its whitespace-only nature, you can do so:

    defaults write com.barebones.bbedit AllowShiftRightToIndentWhitespaceOnlyLines -bool YES


    Note that this preference can be set per-language in the usual fashion, by appending the language’s name to the preference key:


    defaults write com.barebones.bbedit AllowShiftRightToIndentWhitespaceOnlyLines_C++ -bool YES

  • When you use the right-arrow key to navigate over a closing delimiter (right paren/brace/bracket/curly quote), the opening delimiter will be briefly highlighted. If you wish to turn this off, there’s an expert pref:

    defaults write com.barebones.bbedit FlashBalancePointsWhenNavigating -bool NO


  • If you find that you frequently need to bring in text which contains combining Unicode characters (as are frequently found in PDFs generated on other platforms, for example), it can be desirable to preprocess the combining characters into one composed character where possible. This is not a general need, but if you run into it often enough, you can tell BBEdit to combine the characters for you:

    defaults write com.barebones.bbedit PrecomposeUnicodeWhenPasting -bool YES

    (Despite the name, the precomposition is done when BBEdit imports the Clipboard from other applications, not when the paste is actually done.)

    Note that this requires an additional copy of the Clipboard when the application imports the text, and for very large pastes, there may be a noticeable delay while the text gets precomposed. Thus, you should only turn on this setting when you are frequently working with text that contains combining Unicode characters.

  • The progressive (BRIEF compatible) behavior of the Home and End keys operates within a specific time period; if you wait longer than that, the behavior state resets. The factory default timeout period is ten seconds; if you wish to modify this, you can do so as follows:

    defaults write com.barebones.bbedit BRIEFStateTimeout -float x.y

    # “x.y” is some floating point value greater than zero

  • If you like, you can use the Tab key to trigger text completion:

    defaults write com.barebones.bbedit UseTabKeyAsCompletionTrigger -bool YES

Back to top


FTP/SFTP

  • Settings are available for disabling passive FTP, in order to deal with hosts that misbehave when sent the PASV command.

    Passive FTP can be disabled per host, per domain, or globally:

    # only for “foobar.example.com”

    defaults write com.barebones.bbedit DisablePassiveFTP:foobar.example.com -bool YES

    # only for servers in “example.com”

    defaults write com.barebones.bbedit DisablePassiveFTP:example.com -bool YES

    # global preference

    defaults write com.barebones.bbedit DisablePassiveFTP -bool YES

    Our recommendation is that you disable per host in preference to globally or per-domain.

  • Some servers don’t work correctly when SSH compression is enabled. To work around this, SSH compression can be disabled per host, per domain, or globally:

    # only for “foobar.example.com”

    defaults write com.barebones.bbedit EnableSSHCompression:foobar.example.com -bool NO

    # only for servers in “example.com”

    defaults write com.barebones.bbedit EnableSSHCompression:example.com -bool NO

    # global preference

    defaults write com.barebones.bbedit EnableSSHCompression -bool NO

    Our recommendation is that you disable per host in preference to globally or per-domain.

  • Most of the time, the default timeout for connecting to an SFTP server will suffice; however, if the server is heavily loaded it may take longer to respond. To adjust the SFTP connection timeout:

    # set the timeout to 20 seconds — note that “-int” is required

    defaults write com.barebones.bbedit SFTPConnectionTimeout -int 20

Back to top


File Comparison

  • When comparing text files, BBEdit will canonicalize RCS keywords to their unexpanded state, so that the values of RCS keywords are not significant to the differences calculations. If you wish, you can disable this, so that any chance in the RCS keywords on a line will cause the line to appear in the differences:

    # Ignore variances in RCS keyword values when comparing

    defaults write com.barebones.bbedit Diff_IgnoreRCSKeywords -bool NO

Back to top


HTML Tools

  • When doing Check Syntax, Check Links, Update, or Update Images on a folder (including a web site), BBEdit will skip XML files (that is, files determined to be XML either by mapping their file name extensions, or by inspection of their contents). If you prefer to include such files:

    defaults write com.barebones.bbedit MarkupToolsMisc_SkipXMLFilesWhenScanningFolders -bool NO

  • Ordinarily, BBEdit will generate XHTML-style markup in HTML5 documents (those with a “<!DOCTYPE HTML>” declaration). If you wish, you can suppress this:

    defaults write com.barebones.bbedit UseXMLMarkupRulesForHTML5 -bool NO

  • When generating image markup as a result of dropping an image file into an HTML document, BBEdit will generate an “alt” attribute for the image tag, whose value is the file’s name. If you would prefer for the “alt” attribute to be omitted (which will result in an error when checking syntax), you can disable this:

    defaults write com.barebones.bbedit HTMLImageMarkupUsesFileNameForAlt -bool NO

  • When you drop an image file into an HTML document to generate an image tag, BBEdit will generate “width” and “height” tags based on information in the file itself. If you would prefer to omit these:

    defaults write com.barebones.bbedit HTMLImageMarkupCreatesSizeAttributes -bool NO

  • If HTMLImageMarkupCreatesSizeAttributes is turned on, you can instruct BBEdit to generate inline styles for image sizes, instead of height and width:

    defaults write com.barebones.bbedit HTMLImageMarkupUseInlineStyleForImageSize -bool YES

  • When you invoke the Markup Panel to create a new tag, it will automatically fill in attribute names for “promoted” attributes. If there are any attributes that you don’t want to be present in the generated markup, just leave their values blank, and the panel will omit them (unless the attributes are required).

    If you wish, you can suppress the auto fill with an expert preference:

    defaults write com.barebones.bbedit MarkupPanelAutoPrefillRecommendedAttributeNames -bool NO

    Turning off the auto fill will cause the “gear” to appear in the markup panel, and clicking it will manually fill in the promoted attribues for you.

Back to top


Interacting with Other Applications

  • if Xcode is running, Open Selection and Open File by Name will ask it for a path to the file name; if something useful comes back, BBEdit will open it. If for some reason you are using Xcode but don’t want BBEdit to do this, you can turn it off:

    defaults write com.barebones.bbedit AskXcodeForOpenFileByName -bool NO

  • By default, BBEdit will open AppleScript files using whatever application the OS claims is capable of doing so. If you wish to override this, change the “ScriptEditorBundleID” preference to the bundle ID of your preferred script editor. For example, to set the script editor to Script Debugger:

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

  • The “Run in Terminal” and “Go Here in Terminal” commands will use Apple’s “Terminal” application by default. If you would like to use a different one:

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

    (Use the actual terminal’s bundle ID in place of "com.example.TerminalAppBundleID"…)

  • If Dash is installed, BBEdit will use it for “Find in Reference”, in preference to any predefined or custom reference lookup URLs. This can be controlled via an expert preference, on a per-language basis if desired:

    defaults write com.barebones.bbedit UseDashForReferenceLookups -bool NO

    # turn off Dash support entirely

    defaults write com.barebones.bbedit UseDashForReferenceLookups_Ruby -bool NO

    #turn off Dash support only for Ruby

    You could, if you wanted, turn off Dash support by default and then enable it for specific languages, e.g.:

    defaults write com.barebones.bbedit UseDashForReferenceLookups -bool NO

    # turn off Dash support entirely

    defaults write com.barebones.bbedit UseDashForReferenceLookups_C++ -bool YES

    #turn on Dash support only for C++

Back to top


Language Support

  • If you like, you can set the default language for new untitled documents:

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

    &lt;language name&gt;” 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"

  • Most of the factory supplied language modules generate fold ranges for any brace-delimited block that has at least one line, but to reduce noise, only block folds that have at least four lines are shown in editing windows. You can adjust this from the command line, using a language-specific preference key, which consists of “MinimumLinesForBlockFold_” (note the underscore) and the language name; for example:

    defaults write com.barebones.bbedit MinimumLinesForBlockFold_Objective-C

    defaults write com.barebones.bbedit MinimumLinesForBlockFold_Objective-C++ 4

    defaults write com.barebones.bbedit MinimumLinesForBlockFold_JavaScript 4

  • Here are some language-specific settings for PHP. The settings with “Opaque” in their names refer to how certain structures are treated when scanning PHP code that’s embedded in HTML; when the preference is YES (the factory default in most cases), the corresponding structure is skipped so that any syntactic elements within it are ignored. When the preference is NO, the comment/string/etc delimiters are ignored and the structure’s contents are interpreted. (This is generally not desirable, but currently preserved for legacy compatibility.)

    defaults write com.barebones.bbedit OpaqueStrings_PHP -bool NO

    defaults write com.barebones.bbedit OpaqueBlockComments_PHP -bool NO

    defaults write com.barebones.bbedit OpaqueLineComments_PHP -bool NO

    defaults write com.barebones.bbedit OpaqueHereDoc_PHP -bool NO

    If you want variables to appear in the function menu in PHP documents:

    defaults write com.barebones.bbedit ShowVariablesInFunctionList_PHP -bool YES

Back to top


Projects

  • In project windows, the file list does not accept keyboard focus by default, unless the editing view is hidden. You can modify this so that the file list gets the focus whenever you click on it:

    defaults write com.barebones.bbedit ProjectsListCanAcquireKeyboardFocus -bool YES

  • Project windows will ordinarily open an item in the file list for editing when you click on it and the editing view is visible. To require a double-click:

    defaults write com.barebones.bbedit ProjectsOpenItemsOnSingleClick -bool NO

  • BBEdit will not automatically reveal documents in the project list when you select them; View => Reveal in Project List works for this purpose. If you want automatic revealing:

    defaults write com.barebones.bbedit AutoRevealSelectedDocumentInProjectList -bool YES

Back to top


Reading and Writing Files

  • BBEdit ordinarily recognizes image files as images, and will open them into image windows (or ignore them when filtering for text files). To have images possibly treated as text files (which can be potentially dangerous):

    defaults write com.barebones.bbedit QuickTimeImages -bool NO

  • By default, PDFs are considered text files and so may be opened and searched along with all other text files. To have PDFs treated as a special file type (they will be ignored for any operation that requires a text file):

    defaults write com.barebones.bbedit OpenPDFsAsText -bool NO

  • To control whether BBEdit warns you when opening a malformed UTF-8 file:

    defaults write com.barebones.bbedit WarnMalformedUTF8 -bool YES

  • Ordinarily, BBEdit will only ask you to choose a file’s encoding when it can’t otherwise figure out what the encoding is, and your “if the file’s encoding can’t be guessed” preference is a UTF-8 or UTF-16 variant. This should be fine for general use, but if for some reason you always want BBEdit to ask you when it can’t guess a file’s encoding, even if your preference would do the job, you can:

    defaults write com.barebones.bbedit AskForUnguessableFileEncoding -bool YES

  • Beginning with version 8.0, BBEdit stores document state (window position and various settings) in a central repository in your BBEdit preferences folder. If you wish, you can ask BBEdit to store document state in the resource fork of the document’s file:

    defaults write com.barebones.bbedit UseResourceForkForDocumentState -bool YES

  • By default, BBEdit will not store document state for documents located in any of the canonical locations for temporary files. (This also includes the “svn-commit.tmp” files used for Subversion commits.) If desired, you can change this::

    defaults write com.barebones.bbedit SaveDocumentStateForTempFiles -bool YES

  • By default, BBEdit will avoid writing extended attributes (HFS Type/Creator) to volumes which don’t natively support them (i.e. to avoid creating the ._FILE) when it is safe to do so (i.e. we’ll be able to re-open the document correctly later.) If desired, you can fine-tune this behavior:

    defaults write com.barebones.bbedit WriteExtendedAttributes <value>

    value” should be one of the following:

    • Always: Always write the HFS file type and creator (the pre-8.6 behavior)

    • Never: Never set the HFS file type and creator (even if the document’s volume supports it).

    • Smart: Write HFS file type and creator only if the document’s volume supports it

  • For text documents whose size exceeds a certain threshold (expressed in bytes, factory default 1MB), BBEdit will ignore the Soft Wrap Text preference and leave wrapping off in order to improve the performance of opening very large files. The threshold may be adjusted if desired:

    defaults write com.barebones.bbedit Editor_SoftWrapLengthThreshold -int 1048576

    If you set the limit to zero, BBEdit will always honor the Soft Wrap Text preference, even in situations where soft-wrapping a large file may cause it to take a very long time to open.

  • The “Text Files Only” filtering in project lists and disk browsers looks inside of files if necessary, for improved filtering accuracy. This may be disabled, if desired:

    defaults write com.barebones.bbedit InspectTextFileContentsForListFiltering -bool NO

  • BBEdit makes a reasonable guess at a filename
    extension when using “Save As” for a new document. You can also set the preferred extension on a per-language basis:

    defaults write com.barebones.bbedit PreferredFilenameExtension_<LanguageName> -string "abc"

    Replace &lt;LanguageName&gt; with the actual language name; for example:

    defaults write com.barebones.bbedit PreferredFilenameExtension_C++ -string "cxx"

    defaults write com.barebones.bbedit PreferredFilenameExtension_YAML -string "yaml"

    Note that the extension you specify should not include the leading period.

Back to top


Sleep and Auto-Save

  • Document auto-save (for crash recovery) is on by default, with a save interval of one minute. To change either setting:

    defaults write com.barebones.bbedit EnableAutoSave_v2 -bool YES

    defaults write com.barebones.bbedit AutoSaveIntervalInMinutes_v2 -int 10

  • The “Sleep” command does not save any documents in place, since it creates an auto-save file for any open documents with unsaved changes. However, if you want BBEdit to save any titled (i.e. opened from an existing file) documents to disk before sleeping, you can do so as follows:

    defaults write com.barebones.bbedit SaveTitledDocumentsBeforeSleeping -bool YES

  • BBEdit provides control over whether documents on remote servers (FTP/SFTP) or unmounted volumes are opened when automatically reopening documents at application startup. You can modify its behavior with these settings:

    defaults write com.barebones.bbedit AllowVolumeMountDuringStateRestore -bool YES

    # If set to YES, BBEdit will attempt to mount a volume

    # containing a document it wants to reopen. defaults to NO.

    defaults write com.barebones.bbedit ReopenRemoteDocuments -bool YES

    # If set to NO, BBEdit will not attempt to open any documents

    # that were opened from FTP/SFTP servers. Defaults to YES.

    defaults write com.barebones.bbedit PromptToReopenRemoteDocuments -bool YES

    # If set to YES (the default), BBEdit will prompt to give you the

    # opportunity to skip remote documents.

    # If set to NO, BBEdit will open remote documents without

    # asking, if ReopenRemoteDocuments is set to YES.

    # Has no effect if ReopenRemoteDocuments is set to NO.

Back to top


Source Control

  • BBEdit’s Perforce support uses the “p4 login” mechanism. This should be compatible with Perforce repositories and workflows, but if for some reason using p4 login poses a problem in your use of the built-in p4 integration, you can disable it:

    defaults write com.barebones.bbedit PerforceDoNotUseP4Login -bool YES

  • When scanning folders for various purposes (multi-file search, Find differences, and others), SCM administrative directories are specifically ignored, even if “Search Invisible Folders” is turned on: CVS, .svn, .git, .hg, .bzr. This avoids potential disasters that can result from indiscriminate search and replace in such directories. If, however, you choose to live dangerously, you can allow BBEdit to see inside of these directories:

    defaults write com.barebones.bbedit SkipSCMAdminDirsWhenScanningFolders -bool NO

  • BBEdit will ordinarily select the appropriate command-line tool for communicating with the SCM system, based on your $PATH environment variable. If you find that an undesired command-line tool is running within BBEdit but the desired tool is being invoked from a Terminal command line, examine your tool installation and $PATH setup for errors.

    However, for specific cases in which it is necessary to force BBEdit to use a particular tool, you may do so via the following defaults commands:

    defaults write com.barebones.bbedit PerforceToolPathOverride /path/to/p4/binary

    defaults write com.barebones.bbedit SubversionToolPathOverride /path/to/svn/binary

  • “Show Working Copy Status” for svn does not include switched items. If this affects you and you would prefer to see switched items, you may make them visibile with:

    defaults write com.barebones.bbedit ShowSVNSwitchedItems -bool YES

Back to top


Text Display and Coloring

  • Whether or not BBEdit uses text smoothing (antialiasing) may be adjusted separately for fixed-width and for proportional fonts:

    defaults write com.barebones.bbedit FixedWidthFontSmoothingThreshold -int 8

    defaults write com.barebones.bbedit FontSmoothingThreshold -int 4

    The factory default smoothing thresholds are 8pt for fixed width fonts, and 4pt for proportional fonts, respectively. Font sizes above the specified threshold are smoothed; font sizes below the threshold are not.

  • If you want to unconditionally disable text smoothing for a specific font, you can do so as follows:

    defaults write com.barebones.bbedit DisableFontSmoothing_FONTNAME -bool YES

    “FONTNAME” is the display name of the font, as it appears in the Fonts panel or the Font Book application. For example, this will disable font smoothing for Monaco:

    defaults write com.barebones.bbedit DisableFontSmoothing_Monaco -bool YES

  • Font ligatures are off by default (except for the “Hasklig” font), but if you wish you may enable ligatures on a per-font basis. To enable ligatures for a specific font, use the preference key “EnableFontLigatures”, an underscore, and then the display name of the font (as it appears in the “Fonts” panel or the “Font Book” application, not the name of the font file on disk). Using the “Hasklig” font as an example:

    defaults write com.barebones.bbedit EnableFontLigatures_Hasklig -bool YES

    Even when font ligatures are turned on, “rare” ligatures are turned off by default. To enable rare ligatures for a specific font, use the preference key “EnableRareLigatures”, an underscore, and then the display name of the font (as it appears in the “Fonts” panel or the “Font Book” application, not the name of the font file on disk). Again using the “HaskLig” font as an example:


    defaults write com.barebones.bbedit EnableRareLigatures_HaskLig -bool YES


    Whether or not to turn on rare ligatures depends entirely on the design of the font and its behavior when used for editing; there is no hard-and-fast rule for what ligatures a font would decide to support as rare.

Back to top


Text Search and Replace

  • Like many Mac OS X applications, BBEdit supports the “Find Scrap”, a feature of the OS that enables sharing of the “search for” string between applications. Some applications put inappropriate content (such as Web search strings) on the Find Scrap, which can cause the “search for” string in BBEdit’s Find dialog to be replaced when you didn’t expect it.

    To tell BBEdit not to import the Find Scrap into its Find window, nor to export the “search for” string to the Find Scrap:

    defaults write com.barebones.bbedit FindDialog_UsesFindScrap -bool NO

  • The Live Search bar is not visible by default, but appears when you choose “Live Search” from the Search menu. If you would like the Live Search bar to be visible in each new document that you create or open:

    defaults write com.barebones.bbedit Editor_AlwaysOpenQuickFind -bool YES

  • When performing a single-file “Replace All” operation, BBEdit can show a confirmation sheet showing the number of replacements performed. If you would like to see this confirmation:

    defaults write com.barebones.bbedit ReportReplaceAllResults -bool YES

  • If you want to amaze and impress your friends and family with just how fast BBEdit’s Replace All is, there’s an expert preference for that:

    defaults write com.barebones.bbedit ReplaceAllResultsIncludeTiming -bool YES

    When turned on, the sheet (or growl notification) will display the amount of time required for the Replace All operation.

  • If you like, BBEdit will show the full paths of files listed in search results windows:

    defaults write com.barebones.bbedit ShowFullPathsInSearchResults -bool YES

Back to top


Windows and UI Tweaking

  • When using the “Previous Document” and “Next Document” commands on the View menu, or the navigation arrows in the navigation bar, the order in which BBEdit navigates documents is determined by the order in which they were opened. If you prefer, these commands can be made to navigate the documents in the order shown in the file list.

    defaults write com.barebones.bbedit SurfNextPreviousInDisplayOrder -bool YES

  • BBEdit attempts to move windows as little as possible when you zoom them. To override this and let BBEdit place the window in the upper left-hand corner of the screen:

    defaults write com.barebones.bbedit ZoomWindowsInPlace -bool NO

  • By default, the application will allow windows to take up the entire screen when entering full screen mode. If desired, you may prevent this and instruct the application to figure out whether a window should be made the full width of the screen:

    defaults write com.barebones.bbedit FullScreenWindowsHogScreen -bool NO

    You can toggle this behavior on the fly by holding down the Command key when clicking on the “enter full screen” button.

  • When entering full screen mode, the application figures out whether the window width should be increased to take up the full screen width, or not, based on the width of the window relative to the width of the screen that it’s on. The threshold at which the window is made to take up the entire screen width can be set thus:

    defaults write com.barebones.bbedit FullScreenWidthThreshold -float 0.65

    This setting requires that FullScreenWindowsHogScreen be turned on (see above) or that you hold down the Command key while clicking the “enter full screen” button. The threshold is a percentage, so (in the example above), if the window is 65% or more of the width of the screen that it’s on, it will take up the full width of the screen when entering full screen mode.

    Note that when setting the threshold, you must set it as a decimal number, using “-float &lt;some number between 0 and 1&gt;”.

  • The “Remember the … most recently used items” setting in the Application preferences applies to all item types. So, if it’s set to 15, BBEdit will remember 15 text documents, 15 folders, 15 projects, 15 images, and so on. If you want finer control, you can construct an expert pref using the name of the document type as it appears in the menu (and if that name contains spaces, you’ll need to quote it). So, for example, if you only wanted to remember the five most recent projects:

    # remember only the five most recent projects

    defaults write com.barebones.bbedit NSRecentDocumentsLimit:Projects -int 5

    Or the ten most recent folders:

    # remember only the ten most recent folders

    defaults write com.barebones.bbedit NSRecentDocumentsLimit:Folders -int 10

    Or only the most recent shell worksheet:

    # remember only the most recent worksheet

    defaults write com.barebones.bbedit "NSRecentDocumentsLimit:Shell Worksheets" -int 1

    If you don’t want to remember any recent documents of a particular type (they won’t appear in the menu, either), you can set its limit to zero:

    # don’t remember any images

    defaults write com.barebones.bbedit NSRecentDocumentsLimit:Images -int 0

    You can also control the number of items shown in the “Most Recently Used” group:

    # Show up to 15 items in the “Most Recently Used” group:

    defaults write com.barebones.bbedit MostRecentItemsGroupLimit -int 15

    Note that when setting any recent items limit, you must set it as an integer, using “-int &lt;some number&gt;”.

    By default, BBEdit does not remember recent items opened from any of the canonical locations for temporary files. (This also includes the “svn-commit.tmp” files used for Subversion commits.) If desired, you can change this:

    defaults write com.barebones.bbedit RecentItems_RememberTempFiles -bool YES

  • Ordinarily, the application will use the current editing view’s font (at reduced size) for the numbers in the Line Numbers bar. If you would instead prefer to use the miniature system font at fixed size:

    defaults write com.barebones.bbedit UseEditorFontForLineBar -bool NO

  • By default, the “Open File by Name” window stays open when you click the “Open” button. However, if you would prefer for it to act more like a modal dialog, you may do so:

    defaults write com.barebones.bbedit CloseOFBNWindowAfterOpeningSelection -bool YES

  • When using Spaces, BBEdit’s modeless dialog boxes (Find, Multi-File Search, and Open File by Name) can appear on any space on which the application is active. This is against recommended best practices, but typically more convenient when using Spaces heavily. If you prefer to stick to best practices and have those windows “stick” to the space that is active, use this command:

    defaults write com.barebones.bbedit ModelessWindowsStickToActiveSpace -bool YES

Back to top


Miscellaneous

  • The “Copy as Styled HTML” and “Save as Styled HTML” commands normally generate style information inline. If you want to use an embedded style sheet instead, set the expert preference thusly:

    defaults write com.barebones.bbedit UseInlineStylesForCopiedHTML -bool NO

  • When editing files that are on remote file servers (AFP, NFS, SMB, etc), BBEdit will not look for directory-relative tags files or settings files. This is a particular performance win when the file is located on a volume mounted via MacFUSE/SSH or similar, or if the file server is over a slow or high-latency link.

    To enable scanning for tags or settings files on remote volumes, use these separately or together:

    defaults write com.barebones.bbedit DisableCtagsScanOnRemoteVolumes -bool NO

    defaults write com.barebones.bbedit DisableSettingsScanOnRemoteVolumes -bool NO

  • When searching for matches, Open File by Name limits the number of matches to a reasonable maximum. The factory default is 200, and may be adjusted:

    defaults write com.barebones.bbedit OpenByNameMaxWildcardMatches -int 200

  • Ordinarily, the output from Unix scripts run within BBEdit is delimited with line separators (except when the script output is sent to a new untitled document). If you wish to suppress the separators, you can do so:

    defaults write com.barebones.bbedit UseSeparatorsInUnixScriptOutput -bool NO

Back to top