Projects group sets of files and foldersto keep your work organized.They support project-specific settings and build systemsand you can quickly switch between themto continue working where you left off. Www mozilla org en us firefox.
Sublime Text has a good plugin architecture and a large collection of existing plugins created for it. We want users to be able to take advantage of these extensions without requiring developers to support multiple APIs. Sublime Text Alternatives for Windows. There are many alternatives to Sublime Text for Windows if you are looking to replace it. The most popular Windows alternative is Atom, which is both free and Open Source. If that doesn't suit you, our users have ranked more than 100 alternatives to Sublime Text and loads of them are available for Windows.
Adding folders to a project is necessary forGoto Anythingand project-wide Goto Definition.
There is always an active project,even if you haven't created or opened one.In this situation,you are working with an anonymous project,which has limited functionality.New windows always use an anonymous projectwhen they first open.
Sublime Text Open Source
Project metadata is stored in JSON fileswith a .sublime-project
extension.Wherever there's a .sublime-project
file,you will find an ancillary .sublime-workspace
file too.The .sublime-workspace
file contains session datathat you should never edit.(More on workspaces later.)
Note
Generally speaking,it's fine to commit .sublime-project
filesto a source code repository,but always be mindful of what you store in them.
# Creating a Project
Start with an anonymous projectby opening a new windowor closing any active projectwith the Project → Close Project menu.
You can add and remove folders to/from a projectusing the Project menuor the side bar's context menu.If you drag a folder onto a Sublime Text window,it will be added to the project too.
To save an anonymous project,go to Project → Save Project As...
After the project is saved,you can edit it by handto adjust further options.
# Opening Projects
Using the main menu,you can open or switch projectsby selecting Projects → Open Recent,Projects → Switch Project…or Projects → Quick Switch Project….
When switching projects,Sublime Text will close the current projectand open the specified one in the same window,When opening a project,Sublime Text will open a new windowand open the selected project there.
Keyboard shortcuts related to projects:
Description | Shortcut |
---|---|
Quick Switch Project… | Ctrl + Alt + P |
Note
The key binding was removed with build 3096 for Windowsand must be added manually,if desired.In order to do this,add the following key bindingto your user key bindings file:
Additionally,you can open a project from the command lineby passing the .sublime-project
file as an argumentto the subl
command line helperincluded with Sublime Text.
# Advanced Configuration for Project Files
Along with more options for individual directories,projects can have specific build systems or settings overrides.
See Also
- Projects - Reference
- Documentation on project file format and options.
# Settings Related to the Sidebar and Projects
binary_file_patterns
- A list of wildcards.Files matching these wildcards will show up in the side bar,but will be excluded from Goto Anythingand Find in Files.
# Workspaces
Workspaces hold session dataassociated with a project,which includes informationabout the opened files, pane layout,find history and more.A project can have multiple workspaces.
A common use case for workspaces isto work on different featureswithin the same project,where each feature requiresa different set of files to be open,and you want to switch between features quickly.In this case you'll want to havea second workspace available.Writing tests could be an example for this.
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...
The workspace metadata is stored in JSON fileswith the .sublime-workspace
extension,which you are not supposed to edit.
To switch between different workspaces,use CtrlAltP,exactly as you do with projects.
Macintosh portable value. As with projects,you can open a workspacefrom the command lineby passing the desired .sublime-workspace
fileas an argument to the subl
command line helperincluded with Sublime Text.
WARNING
Unlike .sublime-project
files,.sublime-workspace
filesare not meant to be shared or edited manually.You should never commit.sublime-workspace
filesinto a source code repository.
New instructions: https://chromium.googlesource.com/chromium/src/+/master/docs/sublime_ide.mdContents
- 9 Example plugin
Contents
- 9 Example plugin
What is Sublime Text?
- Project support.
- Theme support.
- Works on Mac, Windows and Linux.
- No need to close and re-open during a
gclient sync
. - Supports many of the great editing features found in popular IDE's like Visual Studio, Eclipse and SlickEdit.
- Doesn't go to lunch while you're typing.
- The UI and keyboard shortcuts are pretty standard (e.g. saving a file is still Ctrl+S on Windows).
- It's inexpensive and you can evaluate it (fully functional) for free.
Installing Sublime Text 2
Preferences
'tab_size': 2,
Project files
'folders':
{
}
}
'folders':
{
'name': 'src',
'*.vcproj',
'*.sln',
'*.gitmodules',
],
'build',
'third_party',
'Debug',
]
]
Navigating the project
- 'Goto Anything' or Ctrl+P is how you can quickly open a file or go to a definition of a type such as a class. Just press Ctrl+P and start typing.
- Open source/header file: If you're in a header file, press Alt+O to open up the corresponding source file and vice versa. For more similar features check out the Goto->Switch File submenu.
- 'Go to definition': Right click a symbol and select 'Navigate to Definition'. A more powerful way to navigate symbols is by using the Ctags extension and use the Ctrl+T,Ctrl+T shortcut. See the section about source code indexing below.
Enable source code indexing
- Install the Sublime Package Control package: https://packagecontrol.io/installation
- Install Exuberant Ctags and make sure that ctags is in your path: http://ctags.sourceforge.net/
- On linux you should be able to just do: sudo apt-get install ctags
- Install the Ctags plugin: Ctrl+Shift+P and type 'Package Control: Install Package'
- Create a batch file (e.g. ctags_builder.bat) that you can run either manually or automatically after you do a gclient sync:This takes a couple of minutes to run, but you can work while it is indexing.
ctags --languages=C++ --exclude=third_party --exclude=.git --exclude=build --exclude=out -R -f .tmp_tags & ctags --languages=C++ -a -R -f .tmp_tags third_partyplatformsdk_win8 & ctags --languages=C++ -a -R -f .tmp_tags third_partyWebKit & move /Y .tmp_tags .tags
- Edit the CTags.sublime-settings file for the ctags plugin so that it runs ctags with the above parameters. Note: the above is a batch file - don't simply copy all of it verbatim and paste it into the CTags settings file :-)
Windows: git config --global core.excludesfile %USERPROFILE%.gitignore
Mac, Linux: git config --global core.excludesfile ~/.gitignoreBuilding with ninja
'cmd': ['ninja', '-C', 'outDebug', 'chrome.exe'],
'file_regex': '^[./]*([a-z]?:?[w./]+)[(:]([0-9]+)[):,]([0-9]+)?[:)]?(.*)$'
You can also add build variants so that you can also have quick access to building other targets like unit_tests or browser_tests. You build description file could look like this:
And keep using 'ctrl+b' for a regular, 'chrome.exe' build. Enjoy!
Example plugin
import subprocess
Sublime Source Code
class RunLintCommand(sublime_plugin.TextCommand):
command = ['cpplint.bat', self.view.file_name()]
stdout=subprocess.PIPE,
print process.communicate()[1]
Sublime Text 3 Windows 10
{
Sublime Text Is Open Source
}
D:srccgitsrccontentbrowserbrowsing_instance.cc:69: Add #include for string [build/include_what_you_use] [4]
Done processing D:srccgitsrccontentbrowserbrowsing_instance.cc
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__len__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'add_regions', 'begin_edit', 'buffer_id', 'classify', 'command_history', 'em_width', 'encoding', 'end_edit', 'erase', 'erase_regions', 'erase_status', 'extract_completions', 'extract_scope', ..
Compile current file using Ninja
As a more complex plug in example, look at the attached python file: compile_current_file.py. This plugin will compile the current file with Ninja, so will start by making sure that all this file's project depends on has been built before, and then build only that file.
First, it confirms that the file is indeed part of the current project (by making sure it's under the folder, which is taken from the self.view.window().folders() array, the first one seems to always be the project folder when one is loaded). Then it looks for the file in all the .ninja build files under the out, where must be specified as an argument to the compile_current_file command. Using the proper target for this file compilation, it starts Ninja from a background thread and send the results to the output.exec panel (the same one used by the build system of Sublime Text 2). So you can use key bindings like these two, to build the current file in either Debug or Release mode:
{ 'keys': ['ctrl+f7'], 'command': 'compile_current_file', 'args': {'target_build': 'Debug'} },
{ 'keys': ['ctrl+shift+f7'], 'command': 'compile_current_file', 'args': {'target_build': 'Release'} },
If you are having trouble with this plugin, you can set the python logging level to DEBUG in the console and see some debug output.
Format selection (or area around cursor) using clang-format
Miscellaneous tips
- To synchronize the project sidebar with the currently open file, right click in the text editor and select 'Reveal in Side Bar'. Alternatively you can install the SyncedSideBar sublime package (via the Package Manager) to have this happen automatically like in Eclipse.
- If you're used to hitting a key combination to trigger a build (e.g. Ctrl+Shift+B in Visual Studio) and would like to continue to do so, add this to your Preferences->Key Bindings - User file:
- { 'keys': ['ctrl+shift+b'], 'command': 'show_panel', 'args': {'panel': 'output.exec'} }
- Install the Open-Include plugin (Ctrl+Shift+P, type:'Install Package', type:'Open Include'). Then just put your cursor inside an #include path, hit Alt+D and voila, you're there.
- If you want to take that a step further, add an entry to the right-click context menu by creating a text file named 'context.sublime-menu' under '%APPDATA%Sublime Text 2PackagesUser' with the following content:
[ { 'command': 'open_include', 'caption': 'Open Include' } ]
- Open Command Palette (Ctrl-Shift-P)
- Type 'Package Control: Install Package' (note: given ST's string match is amazing you can just type something like 'instp' and it will find it :-)).
- Case Conversion (automatically swap casing of selected text -- works marvel with multi-select -- go from a kConstantNames to ENUM_NAMES in seconds)
- CTags (see detailed setup info above).
- Git
- Open-Include
- Text Pastry (insert incremental number sequences with multi-select, etc.)
- Wrap Plus (auto-wrap a comment block to 80 columns with Alt-Q)