Zero Friction Blogging with Sublime Text

I’m spoiled by good text editors. After spending eight hours a day zipping through code files at work using only my keyboard, I can’t settle for a less when it’s time to crank out a blog post.

I’m also a firm believer in using plain text formats. Writing is a lot of work, and I want to be able to reuse what I write as easily as possible.

I keep the “source code” for my writing projects in Markdown. It’s easy to tranform into other formats, pastes cleanly, can be versioned with Git, and doesn’t require any particular software to open.

And with a few tweaks, Sublime handles Markdown superbly.

Organizing My Writing

The fun starts with Sublime’s support for project files. I use A project file to pull related writing projects together and make it easy to navigate from file to files. Most of the content I’m writing at the moment is either for this blog, my Sublime Productivity ebook, or the Sublime Text Tips email newsletter.Although I keep them in different folders for version control, they’re all related, so I like to have ready access to them.

I have my folders set up something like this:

Dropbox
|__Writing
   |__Ebook
   |__Blog
   |__Newsletter
   |__SublimeContent.sublime-project

By combining these three writing projects into one Sublime project, I can use Goto Anything to jump from the blog post I’m writing to a chapter in my book to look something up or make a note about a new section to add. (Timely example: As I was drafting this paragraph, I realized that I’d made a mistake in an email I drafted for the newsletter. I opened the file, fixed it, and now I’m back, all within a few keystrokes.)

I store all of my writing in Dropbox and include the folders in my project file using relative paths, which means I always enjoy the same writing environment whether I’m on my Windows 8 ThinkPad or my MacBook Air.

I also use this prose-dedicated project file to override some of my code-friendly default settings, disabling line numbers and turning off the line-length ruler I use when I’m manually formatting code.

Here’s my project file:

{
  "folders":
  [
    {
      "path": "Leanpub/sublime-productivity",
      "file_exclude_patterns": [".gitignore", "*.sublime*"]
    },
    {
      "path": "SublimeTextTips"
    }
    {
      "path": "SublimeTextTipsNewsletter"
    }
  ],
  "settings":
  {
    "rulers": [],
    "line_numbers": false
  }
}

File Management

Two plugins make it much simpler to work with files in my projects: AdvancedNewFile and SideBarEnhancements.

AdvancedNewFile allows me to add new files and folders to a project from the keyboard without having to use a clunky Save As… dialog. Once the plugin is installed, a keyboard shortcut brings up a small toolbar, and I type the path and file name I want. The plugin creates the file and any folders I included in the path that don’t already exist. I recently discovered that AdvancedNewFile supports tab completion for folder names that already exist in the project, which only made me love it more.

SideBarEnhancements deneuters Sublime’s side bar by adding a feature-packed right-click menu, including such standards as deleting and renaming files and opening folders in the OS file explorer. It also allows me to create custom commands, such as mapping an Open in Photoshop command for .png files.

Writing

When writing time rolls around, I lean heavily on the MarkdownEditing plugin. When I first installed this plugin and opened a Markdown file, I was a little put off by how intrusive it was. MarkdownEditing stomped all over many of my carefully considered settings. But I resisted the urge to panic and override its overrides and gave it a shot, and I quickly grew to like the new settings, which only apply when you’re editing a Markdown file.

Among other things, this plugin:

  • Increases the font size.
  • Overrides the default theme with a gray-on-white theme that reminds me of my Kindle. The Markdown syntax highlighting is implemented all in gray, and it’s subtle but effective.
  • Shifts the text into the central 50 percent of the screen and puts wide gutters down either side, which makes for a narrower column width and easier reading. The width of the text column is proportional to your screen width, so the text reflows if you move between smaller and larger screens.
  • Wraps lines automatically to enforce a the column width of 50 percent of the screen. I was accustomed to manually wrapping paragraphs around 100 characters, but it was always a hassle. Markdown doesn’t support line breaks inside of tags, which makes it hard to maintain uniform line lengths. I have officially given up on manually wrapping lines.

You can, of course, override these settings, but they are excellent for writing.

Here’s what my writing environment looks like in distraction free mode on my Macbook Air:

MarkdownEditing provides an attractive, minimalist canvas for writing

In addition to its pleasing aesthetics, MarkdownEditing adds some handy refinements that make Markdown formatting easier:

  • Automatic pairing of common Markdown formatting characters such as the backticks Markdown uses for inline code samples. Type an opening backtick and the plugin closes the tag with a second backtick and positions the cursor between the pair, ready for you to insert your code.
  • Convenient shortcuts for applying bolding and italics to existing text.
  • Several helpful snippets and shortcuts for formatting image tags and links. The syntax for links and images is my least favorite aspect of Markdown, although it certainly beats handcoding img and a elements in HTML. MarkdownEditing includes support for pasting the contents of the clipboard as a link, inserting image, footer and reference links, and wrapping links around existing text.

The developer of MarkdownEditing hasn’t fully fleshed out the Windows and Linux shortcuts yet, but he takes pull requests, and I’ve been able to contribute a couple of enhancements.

On longer blog posts, it’s sometimes nice to tidy up the page by hiding the parts I’m not working on at the moment. The SmartMarkdown plugin provides code folding for Markdown, allowing me to fold sections of the document by subheaders. Just position the cursor in the section header and hit Tab to collapse or expand the section.

The WordCount plugin unobtrusively does what you’d expect. Once installed, it displays the document’s word count in Sublime’s status bar. The count updates in real time–no babysitting required.

As a last step before I hit the publish button, I like to proofread my Markdown content as live HTML. The OmniMarkupPreviewer plugin converts the file I’m editing into HTML and loads it in a new tab in my default browser, making it easy to spot those incorrectly formatted bullet points or that reference link with no URL. This plugin also works with other popular markup formats such as MediaWiki markup.

These plugins work together to give me a clean, minimalist writing environment where I can hide away distracting unfinished sections and quickly apply formatting to blocks of text.

Blog Publishing

For publishing my content, my favorite platform is scriptogr.am. With scriptogr.am, your blog articles live as text files in a Dropbox folder. When you’re ready to publish, you visit the scriptogr.am site and hit a sync button that pulls the latest changes from your Dropbox account and publishes them. If you’re not already committed to a WordPress blog, I’d highly recommend scriptogr.am. It’s free and allows you to use a custom domain name.

Another blogging platform that I’ve experimented with is ruhoh, an open source project that allows you to publish your blog as static files. It’s a cool concept, especially if you’re a command line geek. Ruhoh comes with a command line tool that does everything from creating a new blog to creating new posts and compiling your blog into static HTML files. You write your blog posts in Markdown, and all of the formatting is handled by a collection of Ruby scripts and YAML configuration files. To publish your blog, you execute a ruhoh command to compile the HTML, then use FTP or rsync to deploy the files to your server. The out-of-the-box templates are pretty bare bones, but the engine is flexible and hackable, even for a Ruby n00b like me.

As nice as scriptogr.am and ruhoh are, it’s hard to beat WordPress when it comes to quickly building feature-rich blogs. I like WordPress for its extensibility, but the WordPress WYSIWIG text editor is clunky to use and often generates quirky markup that is a pain to troubleshoot.

For WordPress sites, including this blog, I’ve found that the best workflow is to write the blog post as a Markdown formatted text file, then convert it to HTML and paste it into the WordPress source code editor.

The Markdown to Clipboard plugin makes the HTML conversion a one-step process. I just highlight the text I want to convert, right-click it and select Copy Markdown as HTML. I used this approach it to format this article, and it worked flawlessly.

This workflow would be a pain if a portion of the Markdown doesn’t generate cleanly, as you’d have to modify the HTML after the fact. I haven’t had an issue yet, but if I do, I’ll probably just format the offending portion of my document by hand with HTML, which is considered valid in Markdown.

P.S. Do you love using Sublime to get more done? Sign up for the free Sublime Text Tips newsletter to get more tips every week. As a bonus, I’ll send you a 12-page guide to Sublime’s advanced editing features so you can start using Sublime more effectively–today.

Use Find to Look Up Keyboard Shortcuts

Sublime has tons of keyboard shortcuts that aren’t shown in the menus, and the bindings often differ between operating systems. There’s no built-in quick reference that shows all of the default keyboard shortcuts — or is there?

Keyboard shortcuts, or key bindings in Sublime’s terminology, are defined in OS-specific settings files. The default settings file contains a master list of all of the out-of-the-box shortcuts, and with a little Find finesse, it’s usually easy to figure out the preconfigured key binding.

To open the key binding file for your operating system, click Sublime Text 2 | Preferences | Key Bindings – Default on Mac OS X, or Preferences | Key Bindings – Default on Windows and Linux.

Launch the Find toolbar with Command+F on Mac OS X or Ctrl+F on Windows and Linux. You can search for keywords such as delete or by using part of the key binding, such as ctrl+m, if you’re trying to figure out what a shortcut does.

Or maybe you find a keyboard shortcut online that works for Mac OS X but need to figure out what the command is bound to in Windows. Try this:

  1. Open the default key bindings file on your Windows PC.
  2. Right click in the editor window and select Open Containing Folder. (This is called Reveal in Finder on a Mac.)
  3. Open the Default (OSX).sublime-keymap file (in Sublime, natch).
  4. Search for the Mac shortcut, such as super+shift+j. Note the command name associated with the mapping, in this case expand_selection.
  5. Search the Windows key binding file for the command name. The expand_selection command is mapped to several shortcuts, including Ctrl+Shift+Space.

P.S. Do you love using Sublime to get more done? Sign up for the free Sublime Text Tips newsletter to get more tips every week. As a bonus, I’ll send you a 12-page guide to Sublime’s advanced editing features so you can start using Sublime more effectively–today.

Get 20% discount on new Sublime Text ebook

The beta release of  Sublime Productivityan ebook for Sublime Text 2 users, was published today, and Sublime Text Tips readers can get a 20% discount for the next 24 hours.

To receive the 20% discount, enter coupon code SUBLIMETEXTTIPS at checkoutThe discount is valid through September 28, 2012.

The beta release includes nearly 50 pages of examples, walkthroughs and keyboard mappings, including in-depth coverage of:

  • Common editing tasks like sorting items, joining lines, transposing words and commenting code
  • Precision selection with Sublime’s multi-select and quick add and quick skip features
  • Navigating among project files and jumping around in the current file
  • Organizing related files into projects

The beta version is priced lower than the final cover price. It’s a one-time purchase, so if you buy the beta version you’ll get future versions for free as they’re published.

Check out the book page for more information. 

Sublime Text ebook beta launches Thursday

 Sublime Productivity, an ebook for Sublime Text 2 users, is launching in beta at 1 p.m. on Thursday, September 27.

The beta release includes more than 50 pages of examples, walkthroughs and keyboard mappings, including in-depth coverage of:

  • Common editing tasks like sorting items, joining lines, transposing words and commenting code
  • Precision selection with Sublime’s multi-select and quick add and quick skip features
  • Navigating among project files and jumping around in the current file
  • Organizing related files into projects

The beta version is priced lower than the final cover price. It’s a one-time purchase, so if you buy the beta version you’ll get future versions for free as they’re published.

Check out the book page for more information and to sign up for an exclusive 30% discount code.

Quick Tip: Fold HTML tag attributes while editing cluttered docs

The Fold Tag Attributes command is a lifesaver when you’re editing cluttered HTML and XML documents. By hiding each tag’s attributes, it brings the structure and content of your document to the fore when you’re looking for missing tags or editing a piece of content in a document with horrendous inline styling (shudder).

Unfolded HTML attributes

HTML attributes make it hard to see the content in a document.

Folded HTML attributes

Folding the attributes away emphasizes the content and structure of your document.

To invoke Fold Tag Attributes:

  • Click Edit | Code Folding | Fold Tag Attributes.
    Or press Command+K, Command+T on Mac OS X or Ctrl+K, Ctrl+T on Windows or Linux.

Use the Unfold and Unfold All commands to expand sections of your document as needed.

P.S. Do you love using Sublime to get more done? Sign up for the free Sublime Text Tips newsletter to get more tips every week. As a bonus, I’ll send you a 12-page guide to Sublime’s advanced editing features so you can start using Sublime more effectively–today.

Sublime’s dynamic duo: Quick Add Next and Quick Skip Next

Two of Sublime Text’s more unique editing commands, Quick Add Next and Quick Skip Next, make a powerhouse duo if used together.

The first of these, Quick Add Next, is an excellent replacement for simple find-and-replace type changes, especially when you want to limit the changes to a subsection of the file.

When you select a word and invoke Quick Add Next, Sublime will highlight the next occurance of the word and insert a multi-select cursor at that point, allowing you to change both words simultaneously.

As an illustration of this command’s usefulness, let’s look at how we might take this HTML snippet and add a class name to each li element:

<ul>
  <li>The Office</li>
  <li>Fringe</li>
  <li>Touch</li>
</ul>

To perform this task, I can simply select the characters <li in the first element, then press invoke Quick Add Next twice to select the next two occurances. Once all of the elements are highlighted, I press Right Arrow to cancel the selection and type class="tv-shows".

To invoke Quick Add Next:

  1. Select the text you’d like to change.
  2. Press Command+D on Mac OSX or Ctrl+D on Windows or Linux.
    Or click Find | Quick Add Next in the application menu.

Quick Skip Next

When making multiple selections with Quick Add Next, it’s often useful to skip one or more occurances of the word you’re replacing. The Quick Skip Next allows you to jump over the next instance of the word you’re selecting.

For example, let’s say we would like to apply a CSS class to our list of TV shows to style the series that are in reruns differently from the ones that are still running:

<ul>
  <li class="shows">The Office</li>
  <li class="shows">The A Team</li>
  <li class="shows">Fringe</li>
  <li class="shows">The X Files</li>
  <li class="shows">Touch</li>
  <li class="shows">Knight Rider</li>
</ul>

Starting on the first list item, I position the cursor in the word shows, then invoke Quick Add Next twice to highlight the class name and move down a line, then Quick Skip Next twice, then invoke Quick Add Next, then Quick Skip Next, resulting in the following selection:

**Quick Add Next** and **Quick Skip Next** work together

The name Quick Skip Next is a little misleading. A better name might just be Quick Skip. When I started playing with this feature, I expected that highlighting a match and then invoking Quick Skip Next would immediately skip the second item and highlight the third. Instead, what happens is that Sublime unhighlights the current line and jumps to the next match. Once I understood this it was simple to make the selections I was after.

To invoke Quick Skip Next:

  1. Invoke Quick Add Next until you’ve highlighted an instance of the word that you want to skip.
  2. Press Command+K, Command+D on Mac OSX or Ctrl+K, Ctrl+D on Windows or Linux.

Learn ‘em, love em.’

P.S. Do you love using Sublime to get more done? Sign up for the free Sublime Text Tips newsletter to get more tips every week. As a bonus, I’ll send you a 12-page guide to Sublime’s advanced editing features so you can start using Sublime more effectively–today.

Cross-platform syncing for Sublime Text editor settings and plugins with Dropbox

Between my day job as an ASP.NET developer and my freelancing and writing, I bounce around among computers quite a bit. I currently split time among my MacBook Air and a Windows 7 PC, as well as various Linux and Windows virtual machines.

After setting up Sublime for the second or third time, I realized that I needed to automate the process of installing packages and tweaking configs.

Portable Installation

The Windows version of Sublime is available as a portable installation, which keeps all of the files Sublime needs in one place and doesn’t touch the rest of the system. This allows you to install it on a USB key and run it from any PC with the same exact configuration.

I use Dropbox for all of my important files, and portable apps sync via Dropbox just as brilliantly as every other type of file. I created a \Programs\Sublime folder in Dropbox and installed the portable version of Sublime there. My Sublime settings and plugins sync seamlessly between Windows PCs, and when I create a new virtual machine, I don’t even have to install Sublime.

The Mac version of Sublime, sadly, doesn’t support this. Mac OS X doesn’t have a concept of portable apps, and Sublime for Mac places all of its important files in the ~/Libary/Application Support/Sublime Text 2/ directory.

Mac Setup

The following bash script removes Sublime’s default settings and plugins directories and creates symbolic links to the folders used by the portable Windows version installed in the ~/Dropbox/Programs/Sublime/ directory:

#!/bin/bash

cd ~/Library/Application\ Support/Sublime\ Text\ 2/
rm -rf ./Packages
rm -rf ./Installed\ Packages
rm -rf ./Pristine\ Packages

ln -s ~/Dropbox/Programs/Sublime/Data/Packages ./Packages
ln -s ~/Dropbox/Programs/Sublime/Data/Installed\ Packages ./Installed\ Packages
ln -s ~/Dropbox/Programs/Sublime/Data/Pristine\ Packages ./Pristine\ Packages

Alternate Windows Setup

To take this one step further, you could also consider doing a full installation of Sublime on your Windows PC and set up hard links to just the \Packages, Installed Packages and Pristine Packages folders in Dropbox using the mklink command.

To create the hard links, launch the Windows command prompt as an administrator, then execute the following commands:

cd "%PROGRAMFILES(x86)%\Sublime Text 2"
mklink /D "Installed Packages" "%USERPROFILE%\Dropbox\Programs\Sublime\Installed Packages" 
mklink /D "Packages" "%USERPROFILE%\Dropbox\Programs\Packages" 
mklink /D "Pristine Packages" "%USERPROFILE%\Dropbox\Programs\Pristine Packages"

Note: If you’re running a 32-bit version of Windows, the initial cd command above will fail. Use cd "%PROGRAMFILES%\Sublime Text 2" instead.

Minor Issues

I’ve encountered two issues with syncing all of Sublime’s configuration files this way. The first issue pertained to syncing project and session files. I was trying to store project files in a central location in Dropbox, and I found that Sublime tended to use full paths instead of relative ones. I later realized that you’re supposed to keep projects in the root directory of the files they pertain to. So if you have a project called MyWebsite, it goes in the MyWebsite root directory. This allows you to check the Sublime .project file into your version control system and share it with other team members.

The other main issue related to font sizes. I use a larger font on my Windows PC because I tend to sit back from the screen a bit more than when I’m working on my MacBook. But Sublime doesn’t know that, and the font settings sync along with everything else.

An elegant solution to this problem is setting up host-specific settings that allow you to toggle between different profiles when you switch computers.

P.S. Do you love using Sublime to get more done? Sign up for the free Sublime Text Tips newsletter to get more tips every week. As a bonus, I’ll send you a 12-page guide to Sublime’s advanced editing features so you can start using Sublime more effectively–today.

Using Sublime Text’s amazing multiple selections

Multi-select

Multiple cursor mode is one of Sublime Text’s most distinctive features, and it’s a huge productivity booster.

To illustrate how useful this feature can be, let’s take a look at some simple editing scenarios using the following HTML list:

<ul>
	<li>The Office</li>
	<li>Fringe</li>
	<li>Touch</li>
</ul>

If I want to add a CSS class element of tv-shows in most text editors, I’d either try to do some kind of find and replace on the opening li element, or I’d need to enter column selection mode to vertically select a single column and then then type in the text I need in all three rows. Every text editor seems to set this mode up a little differently, if at all, and it always takes me some fumbling around to get it working.

Sublime’s multiple selections are much more intuitive. After each opening li, I can just Command+click on Mac OS X or Ctrl+click on Windows and Linux, and then start typing:

Multiple selections in action.

You can even click multiple locations on the same line.

Multiple selection can help with many scenarios where you’d normally need to take a couple of minutes to figure out a good find and replace approach or record a macro.

Consider the following list:

The Office
Fringe
Touch

To wrap these items in li elements, you could record a macro where you typed the opening <li> tag, jumped to the end of the line, typed the </li> tag, moved down a line, then jumped to the beginning of the line. Replaying this two times would result in the entire list being formatted. When you have a lot of items to work with, this extra effort is often worthwhile.

However, to make a quick, three-line change like this, using multiple selections is much faster. In this scenario, all you need to do is:

  1. Insert the cursor at the beginning of the first line.
  2. Invoke the Add Next Line command twice.
  3. Type the opening <li> tag.
  4. Press End.
  5. Type the closing </li> tag.

Mulitple selections can handle tasks that would otherwise require a macro.

You can combine the multiple selection feature with Sublime’s powerful selection features to perform tasks that would normally require complex macros or fiddling with regular expressions. For example, given a list of items with different CSS classes:

<ul>
	<li class="current">The Office</li>
	<li class="current">Fringe</li>
	<li class="current">Touch</li>
	<li class="reruns">24</li>
	<li class="reruns">The X Files</li>
</ul>

You could quickly change the class names of all items by combining Add Next Line with Expand Selection to Word:

Multiple selections can negate the need for complex regex replaces.

Multiple selections is such a unique feature that it’s sometimes hard to remember it even exists. Spend a few minutes play around with it, and next time you find yourself making tedious manual edits because there doesn’t seem to be an easy way to automate a task, ask yourself whether you could knock it out with multiple selections.

P.S. Do you love using Sublime to get more done? Sign up for the free Sublime Text Tips newsletter to get more tips every week. As a bonus, I’ll send you a 12-page guide to Sublime’s advanced editing features so you can start using Sublime more effectively–today.

Selecting blocks of text with Sublime Text 2

Selecting the text inside of a set of matching parentheses, brackets or curly braces is a common text editing action for most programmers.

Using the mouse or hitting Shift+Arrow gets the job done, but it’s really clumsy. Sublime Text 2 offers a much more sophisticated tool: scoped text selection.

Scoped selection allows you to repeatedly hit a single keyboard shortcut to first select the text inside of the current set of braces or parentheses, then expand the selection out to include the next set of braces, and so on, until the entire file is selected.

Let’s look at how this works on a simple jQuery snippet.

I’ll start by placing the cursor inside of the parentheses for console.log():

Starting cursor position

The default keyboard shortcut for scoped selection is Shift+Command+Space on Mac OS X or Ctrl+Shift+Space on Windows, and invoking it selects all of the text inside of the parentheses:

First selection

Repeating the key combo expands the selection and adds the parentheses:

Second selection

I can keep walking up to wider scopes to include the curly braces for the anonymous function:

Third selection

And eventually the entire method body:

Fourth selection

P.S. Do you love using Sublime to get more done? Sign up for the free Sublime Text Tips newsletter to get more tips every week. As a bonus, I’ll send you a 12-page guide to Sublime’s advanced editing features so you can start using Sublime more effectively–today.

Best plugins for Sublime Text 2

One of the best things about Sublime Text 2 is the hundreds of available plugins that loyal fans have written. Here’s a list of some that you should install today.

Package Control

If you haven’t set up the Package Control plugin, go do it. Right now.

Package Control allows you to browse and install hundreds of plugins, and setting it up is as easy as running a small script in the Sublime Python console.

To install a plugin using Package Control:

  • Press Command+Shift+P on Mac OS X or Ctrl+Shift+P on Windows or Linux to open Sublime’s Command Palette.
  • Type install to highlight the Package Control: Install Package command.
  • Press Enter to open the package list.
  • Type part of a package name to see a list of matching packages.
  • Highlight the package and press Enter. You’ll see a confirmation message in Sublime’s status bar when the installation is complete.

Enhance the sidebar

By default, the Sublime Text 2 sidebar is weak sauce. You can browse through open files and folders, but if you right-click on a file, you’ll get a menu with just a Close
command.

The SideBarEnhancements plugin fixes this by beefing up the right-click menu, adding a number of commands that you’d expect like Copy, Paste and Delete, as well as Open in Browser, New File … and New Folder …. You can also define your own custom commands, maybe Open in Chrome or Open Command Prompt Here.

Quickly create new files

While it’s nice to have the ability to create new files with a right-click, menus are slow when you’re slinging code. The AdvancedNewFile plugin provides a simple prompt that allows you to generate new files by typing out your desired path and file name. Any nested directories that you include in the path will be generated if they don’t already exist.

Speed up HTML coding

I’ve covered ZenCoding in a previous post, and it’s still every bit as awesome. The basic concept behind ZenCoding is simple. When you’re writing HTML, XML or some similar language that consists of nested tags, ZenCoding allows you to define the tag hierarchy in a single line, using a CSS-like syntax. The plugin expands your one-liner to create the appropriate structure. For example, this:

div > ul > li*3

Becomes:

<div>
      <ul>
        <li></li>
        <li></li>
        <li></li>
      </ul> 
  </div>

There’s a bit more to it, so install the plugin and check out the documentation on the ZenCoding project site.

Work with source control

I love working on the console as much as anyone, but I also prefer to avoid constantly switching apps when I’m cranking out code. Integrating version control into my text editor means fewer interruptions to my workflow.

The Git plugin brings some useful Git commands into Sublime, and SublimeHg does the same for Mercurial. The Gitignore plugin makes it easy to pull down boilerplate code>.gitignore files from GitHub, solving a problem that's annoyed me for a while.

Help for bloggers

If you use Sublime for non-coding tasks like blogging, two handy plugins are MarkdownEditing and WordCount.

MarkdownEditing provides syntax highlighting and some handy text editing features, and WordCount tells you when you've gone on long enough, displaying the word count in the status bar.

Bonus Tip: View installed plugins

It's easy to lose track of what you've installed, or forget the keyboard shortcut required to trigger some plugin that you only use occasionally. Fortunately, it's easy to review your list of installed plugins and read their documentation using the Browse Packages command.

To view installed plugins, select Sublime Text 2 | Preferences | Browse Packages on OS X or Preferences | Browse Packages on Windows and Linux. The system file explorer launches, displaying the folders for all installed packages. Most packages include a README file that includes usage instructions and keyboard shortcuts.

P.S. Do you love using Sublime to get more done? Sign up for the free Sublime Text Tips newsletter to get more tips every week. As a bonus, I'll send you a 12-page guide to Sublime's advanced editing features so you can start using Sublime more effectively--today.