Here you will find a list of the items I went through and how you can replicate them for yourself. I recommend Sublime Text 2 as version 3 is still in beta and many plugins out there don’t support Sublime Text 3 just yet.
Mac: Command + P
Windows/Linux: Control + P
It opens an omnibar where you can type in what you’re looking for and it finds it for you.
Go to file
Type the file name you’re after, if the file you’re looking for is inside other
directories, you can punch in the directory names or parts of it as well, e.g.
/contrib/somelibrary/somefile.cpp then you can type in
co: contrib soli: somelib f.c: somefile.cpp. It should get you to the file(s)
the pattern matches to.
Go to line
Add a colon
: to the end of what you’ve typed before, e.g.
will take you to line 100 of the file. If you just enter
:100 it will take you
to the line 100 of the currently open file.
Go to definition
somefile.cpp has some function definitions in it. One of which is
somefunction(). It doesn’t need to be a C++ file, it can be pretty much
any language that your Sublime Text installation supports. In the omnibar type
[email protected], it should take you to the very line
been defined. Not specifying the filename will take you to the function
definition of the currently open file. The definition can also be a class or
For occurrence of words that or not necessarily definitions, use
# instead of
Mac: Command + F2 (toggle bookmark), F2 (go
Windows/Linux: Control + F2 (toggle bookmark), F2 (go to bookmark)
You can easily create bookmarks in files and switch back and forth between them. A line that has at least one bookmark in it will show a right arrow on the left-hand side. Note that bookmarks are not applied to lined but a specific column in a row. Therefore you can have multiple bookmarks in one line. This can cause a bit of confusion as being on a line that has bookmark is not going to be enough in order to remove a bookmark. You have to be on the exact location the bookmark was originally created at.
Mac: Command + Shift + P
Windows/Linux: Control + Shift + P
Opens an omnibar that allows you to type in commands, e.g. Bookmarks: Select All, Git: Diff Current File (if you have the Git plug-in installed), snippets, etc.
Usually Sublime Text recognises the type of the file you’re working on and does
proper syntax highlighting and settings for that Syntax. In case it doesn’t, for
example when you create a new file, in the Command Palette, type in
which stands for Syntax: LaTeX as an example.
You would usually type in the Snippet you’re after and press Tab to
complete it, e.g. in a PHP file, you’d type
for and press Tab. But
that required you to know the Snippet in advance. To quickly see a list of all
available snippets in the current Syntax, open up the Command Palette and type
snippet:. You can see the shortcut associated with that Snippet, as well as
pressing Enter to use it. Try
Assume you’re working on a line and the caret is in the middle of the line, in
front of the letter
i of the word
arbitrary. When you press Enter, it breaks
the line and the word in two, making it look like
Mac: Command + Enter
Windows/Linux: Control + Enter
Will put the caret on the next line without breaking the word nor the current line.
Mac: Command + Shift + Enter
Windows/Linux: Control + Shift + Enter
Will put the caret on the previous line without breaking the word nor the current line.
Default & User
Preferences in Sublime Text are text-based (JSON Objects to be exact), and are either scoped Default or User. The Default Preferences belong to the editor and its packages. Although the Default settings can be edited, they can potentially be overwritten by an update later on. Therefore you should always put your settings inside the User settings file.
Sublime Text settings can be accessed form the top menu. Click on
Sublime Text > Preferences > Settings - Default or
Settings - User. You
should copy the contents of the Default settings file into the User settings
file and make your changes there. I have shared my own settings file in
this repository on
Same as above goes for Key Bindings. This is where shortcuts are defined. If you
want to change a Sublime Text built-in shortcut, then you should override the
Key Bindings - User file. For example the following will change the
Next Bookmark key from F2 to F7.
You can override package specific shortcuts in
Key Bindings - User as well.
Settings can be project specific. You might want to have a 2-space tab size on a
Drupal project you’re working on and 4-spaces on any other project. When you
save your project in Sublime Text, from the top menu
Project > Save Project
As... open your projects
.sublime-project file and add the following to the
Project JSON object.
More info here.
Syntax Specific Settings
Sometimes settings need to be Syntax specific. For example Ruby coding style
prefers a 2-space tab size. Or in Markdown, you might want to allow trailing
spaces whereas on any other file, you don’t. Having the following in
/path/to/Sublime Text 2/Packages/User/Markdown.sublime-settings will just do
Sublime Text is pretty smart in recognising blocks of code or text. For example Sublime Text will create two blocks for the following text. Please note the indentation.
Note how the items #3 and #4 will not turn into foldable blocks. Command + Option + [ fold the current block your caret is on, Command + Option + ] unfolds it. Use Control + Shift + [ and Control + Shift + ] on Windows/Linux.
Command + K, Command + 1 through Command + K, Command + 9 sequences fold blocks from level 1 through level 9. For example Command + K, Command + 3 will fold blocks that you have in a block within another block. Command + K, Command + 0 unfolds all. Use Control instead of Command on Windows/Linux.
You can move one line or multiple selected lines up and down. Command + Control + ↑ and Command + Control + ↓ move the selected line(s) up and down respectively. Use Control + Shift + ↑ and Control + Shift + ↓ on Windows/Linux.
Mac: Command + Click
Windows/Linux: Control + Click
One of the nicest features of Sublime Text is that you can have multiple carets
which allows simultaneous editing. There are different ways to create multiple
cursors. Easiest one is by holding Command on Mac, Control
on Windows/Linux and clicking on different areas in your document.
One of the useful things you can do with multiple cursors is that when you copy contents of multiple cursors into clipboard, you can paste them onto multiple cursors as well. As long as the number of cursors match everything should be pasted in the corresponding cursor location.
Select Next Like
Select a word, then press Command + D on Mac or Control + D on Windows/Linux to select the next occurrence of the selected word.
Select All Like
Select a word, then press Command + Control + G on Mac, Alt + F3 on Windows/Linux to select all occurrences of the selected word.
Select two or more lines, press Command + Shift + L on Mac, Control + Shift + L on Windows/Linux to turn the selection into a multi-line multi-cursor selection.
Hold down Option then click on the location you want to start a visual block selection and drag. This will select your content in a box, rather than the traditional way which wraps the lines as well. Use WinKey + Shift + Click on Windows/Linux.
Regex in Find and Find/Replace
Mac: Command + F (find in document),
Command + Shift + F (find in project)
Windows/Linux: Control + F (find in document), Control + Shift + F (find in project)
Sublime Text allows you to search in Regular Expressions if you are looking for
patterns that cannot be found using normal search. For example, in a document
you wish to find all email addresses and make them all upper case. To do so, you
open Find, press Command + Option + R to enable
Regex search (You can also click on the button on the left-hand side of the
search box). Then type in
\[email protected]\S+ (simple email regex for the sake of the
argument). Now click on
Find All or press Option + Enter
on Mac, Alt + Enter on Windows/Linux. Now you have all
email addresses in the document selected, press Command +
K, Command + U sequence to make them all upper
Below is a list of packages I use on a daily basis.
The package every single Sublime Text user needs to have is a package management
package called Package Control. It’s very easy to
install and makes installing and uninstalling packages in your installation
Note that the code used for installing Package Control for Sublime Test 2 and 3 are different. Once installed, you can open the Command Palette and type in
Package Control: Install Package, then enter the name of the package you would
like to install.
If there’s a Syntax that Sublime Text doesn’t support out of the box, then you can install the appropriate package, e.g. Puppet.
Makes previews of your markdown documents. Open up the Command Palette and pick
Markdown Preview: Preview in Browser.
Adds useful items to the left-hand sidebar.
Aligns your definitions. You won’t need to worry about spacing them manually anymore. All you need to do is to select the lines you want to align and press Command + Control + A on Mac, and Control + Alt + A on Windows/Linux. It turns
Provides useful Git command. Diff, Checkout Current File, Log, Change Branch, Blame are the ones I use the most.
Shows what has changed in the file you have open. It’s very useful to see what lines have changed, what lines are new, and where lines are missing.
Vintage is a package that comes with Sublime Text but is disabled by default. If
you like Vi or Vim, I highly recommend this package. You can enable it by either
ignored_packages in the settings file, or using Package
Enable Package command.
I don’t personally use this but web developers would appreciate Emmet. It
receives CSS selectors and turns them into HTML, e.g.
div#album>ul>li*5>img[alt="Image #$"] will turn into
More info on emmet.io.