File Navigation and File Management

Goto Anything

Use Goto Anything to navigate your project’s files swiftly. (More about projects later.)

To open Goto Anything, press Ctrl+P. As you type into the input area, names of open files and files in open directories will be searched, and a preview of the best match will be shown. This preview is transient; that is, it won’t become the actual active view until you perform some operation on it. Transient views go away when you press Esc. You will find transient views in other situations, for example when single-clicking a file in the sidebar.

Goto Anything lives up to its name –there’s more to it than locating files.

Goto Anything Operators

Goto Anything understands a handful of operators. Any of them can be used in combination with file search queries.

Example:

island:123

This instructs Sublime Text to first search for a file that matches island and then go to line 123.

Supported Operators

@symbol

Searches for symbol symbol in the active buffer; bound to Ctrl+R.

Symbols usually are classes or functions, but can target any scope present in the syntax definition. See Symbols - Syntax Preferences (XXX to be added). If no symbols are defined, the search will simply fail.

#term
Fuzzy-searches a word in the file matching term and highlights all instances; bound to Ctrl+;.
:line_number
Goes to the specified line number or the end of the file if it exceeds the file limit; bound to Ctrl+G.

Note

Searching for symbols will only work

if the active file type has symbols defined for it. Symbols are defined in .tmLanguage files.

Projects

Projects group sets of files and folders to keep your work organized. Set up a project by adding folders in a way that suits you, and then save your new configuration.

You can add and remove folders to a project with the Project menu and the side bar’s context menu. Alternatively, you can drag a folder onto a window and it will be added automatically.

To save a project, go to Project | Save Project As....

To switch projects quickly, press Ctrl+Alt+P. Using the menu, you can select Projects | Recent Projects.

Project data are stored in JSON files with a .sublime-project extension. Wherever there’s a .sublime-project file, you will find an ancillary .sublime-workspace file too. The second one is used by Sublime Text and you shouldn’t edit it yourself.

Project files can define settings specific to that project. More information in the official documentation.

You can open a project from the command line by passing the .sublime- project file as an argument to the Sublime Text executable.

Project files are meant to be committed to source code repositories.

Project Definitions

Project definitions are stored in JSON files with a .sublime-project extension. Wherever there’s a .sublime-project file, you will find an ancillary .sublime-workspace file too, which contains user specific data, such as the open files and the modifications to each. The latter is used by Sublime Text and isn’t meant to be edited by users.

Project definitions support three top level sections: folders, for the included folders, settings, for settings overrides, and build_systems, for project-specific build systems.

{
    "folders":
    [
        {
            "path": "src",
            "folder_exclude_patterns": ["backup"]
        },
        {
            "path": "docs",
            "name": "Documentation",
            "file_exclude_patterns": ["*.css"]
        }
    ],
    "settings":
    {
        "tab_size": 8
    },
    "build_systems":
    [
        {
            "name": "List",
            "cmd": ["ls"]
        }
    ]
}
Folders
Each folder must have a path, and may optionally have a folder_exclude_patterns
and file_exclude_patterns setting.
The path may be relative to the project directory, or an absolute path. Folders may also be given a name that will appear in the side bar.
Settings

A project may define project-specific settings that will only apply to files within that project. Project-specific settings override regular user settings, but not syntax-specific settings.

Almost all settings can be overridden (excluding global settings).

See also

The Settings Hierarchy
A detailed example for the order of precedence for settings.
Settings - Reference
Reference of available settings.
Build Systems

You can define project-specific build systems in a project definition. In addition to regular build systems, a name must be specified for each one. Build systems listed here will be available via the regular Tools | Build Systems menu.

See also

Build Systems - Reference
Documentation on build systems and their options.

Workspaces

Workspaces can be seen as different views into the same project. For example, you may want to have only a selected few files open while working on Feature A. Or perhaps you use a different pane layout when you’re writing tests, etc. Workspaces help in these situations.

**Workspaces behave very much like projects. To create a new workspace, select **Project | New Workspace for Project. To save the active workspace, select **Project | Save Workspace As....

Workspaces data is stored in JSON files with the .sublime-workspace extension.

Contrary to .sublime-project files, .sublime-workspace files are not meant to be shared or edited manually. Never commit .sublime-workspace files into a source code repository.

To switch between different workspaces, use Ctrl+Alt+P, exactly as you do with projects.

As with projects, you can open a workspace from the command line by passing the desired .sublime-workspace file as an argument to the Sublime Text executable.

Panes

Panes are groups of views. In Sublime Text you can have multiple panes open at the same time.

To create a new pane, press Ctrl+K, Ctrl+Up. To close a pane, press Ctrl+K, Ctrl+Down.

Further pane management commands can be found under View | Layout and related submenus.