Configuring Sublime Text 3

Some days ago I stumbled across this website, which checks if your installed Sublime plugins are compatible with Sublime Text 3. As all of mine were already compatible I made the switch. Nevertheless I had to spend some time migrating, because there are some differences in setting up Sublime’s snippets and SublimeLinter.

Disabling default snippets

By default Sublime has some snippets installed that you may find useful. Personally I like to use my own, therefore I disable the pre-installed ones. In Sublime Text 2 this could be done by deleting the snippets from the Packages folder. Unfortunately updates reverted those changes.

Sublime Text 3 handles its internal snippets differently. They are now stored directly as bundled packages inside of the main app, but can be overwritten by adding a snippet with the same name in the Packages folder. To extract all snippets of a language there is a package called PackageResourceViewer, which is available in Package Control. Simply install the package, search for the “PackageResourceViewer: Extract Package” command and choose the language with the snippets you want to edit or disable.

All files inside this package will now be copied to your Packages folder: ~/Library/Application Support/Sublime Text 3/Packages/. Now you can edit the pre-installed snippets and completions by opening files with the extensions .sublime-snippet or .sublime-completions. Sometimes there are also some completions stored as python files, for example css_completions.py.

If you simply want to disable the default auto-completions, open these files and remove all content. Empty files are evaluated as if there is no snippet/completion. To benefit from future updates, I recommend deleting all other files that have been extracted to your Packages folder, as these are language definitions and settings.

SublimeLinter3

I use SublimeLinter for JavaScript programming. Its latest update, which only works with Sublime Text 3, has some major changes. The main package does now operate as a framework for different linters and each linter has its own package in Package Control.

To use jshint you have to install the SublimeLinter and SublimeLinter-jshint package. SublimeLinter-jshint requires node and jshint to be installed globally. If you use zsh and nvm like I do, you’ll also have to add your current node version to your PATH in a .zshenv file, e.g. export PATH=$PATH:/Users/max/.nvm/v0.10.26/bin. Otherwise SublimeLinter won’t find jshint. There also is a path setting for different operating systems in the new SublimeLinter.sublime-settings file, but adding the path there didn’t work for me.