How to change default code snippets in Sublime Text 3?

SublimetextSublimetext3

Sublimetext Problem Overview


I know how to edit the snippets myself, just can't seem to be able to find the default ones in the new version of Sublime Text.

EDIT: The snippet I am trying to find and consequently edit is the default for the Latex files, in particular the one that converts from:

sec

to

\section{section name} % (fold)
\label{sec:section_name}

Sublimetext Solutions


Solution 1 - Sublimetext

Sublime Text 3 stores its packages in .sublime-package zip files (the location varies by OS), so unlike ST2 you can't just go to the Packages folder and see everything. However, there is an excellent plugin called PackageResourceViewer (available via Package Control) that can, among other things, extract files or whole packages to the Packages directory.

Once you've installed the plugin:

  • hit CtrlShiftP to open the command palette
  • type prv to get the Package Resource Viewer: options
  • select Package Resource Viewer: Open Resource
  • navigate down the list to LaTeX
  • then open the section-..-(section).sublime-snippet file.

You should now be able to edit this file and save it, which will create a new file Packages/LaTeX/section-..-(section).sublime-snippet that you can open directly via the file menu if you need to alter it again.

If you'd like to work on multiple files, or an entire package, use Package Resource Viewer: Extract Package which will unzip everything into the Packages/PackageName folder. Please keep in mind, though, that once packages or individual files are extracted into the Packages folder, they overrule files of the same name located in the .sublime-package archive. This is good for customization, but if at some point the parent package is updated, you won't see the effects because they're being masked by what's in Packages. Therefore, it's probably best to extract only what you need, and keep an eye on your package updates in case new features are introduced that you want to take advantage of.

Good luck!

Solution 2 - Sublimetext

To easily jump there in terminal (if you are using ST3 on OSX) is /Users/$USER/Library/Application\ Support/Sublime\ Text\ 3/Packages/User. You can see all of your snippets here and edit them as you like.

Solution 3 - Sublimetext

In addition to the other answer, here is how to do it without having to install any additional plugin.

Solution not requiring any additional plugin (October 2016).


I had a similar problem while trying to override some key bindings defined in a package.

Steps

  • Install your package (using Package Manager or any other method you prefer).

Your zipped package file should be now placed within the folder ~/.config/sublime-text-3/Installed Packages/<your-package>.sublime-package.

  • Check the content of the package by unzipping it (just make sure to keep the original zipped file).

    Among these files, find the one that contains the preference you want to edit (see Package Contents). In your case it should be a .sublime-snippet file. Remember its name.

  • Create a folder with the same name of your package inside ~/.config/sublime-text-3/Packages.

  • Create inside this folder a new snippet file that will override the default package behaviour. Note that the new file should have the same name of the snippet file that you found inside the package. From console:

      > cd ~/.config/sublime-text-3/Packages
      > mkdir <YOUR-PACKAGE-NAME>
      > gedit <YOUR-SNIPPET-NAME>.sublime-snippet
    
  • Put the content of your new snippet in your <YOUR-SNIPPET-NAME>.sublime-snippet. This will override the old snippet behaviour.

Sources:

Solution 4 - Sublimetext

Override with new snippet

While it's not simple to edit built-in snippets, you can add new snippets with the same trigger keyword, to effectively override them.

  1. Tools > Developer > New Snippet... (in ST2 at least, I assume 3 is similar)
  2. Add the snippet that you desire (check docs for format). Ensure the <tabTrigger> is the same as the one you want to replace
  3. Save in your User folder with extension .sublime-snippet
  4. Restart and try it out!

After using your snippet, Sublime seems to remember your preference and be the first one selected, rather than the built in one.

enter image description here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionnunosView Question on Stackoverflow
Solution 1 - SublimetextMattDMoView Answer on Stackoverflow
Solution 2 - Sublimetextepg388View Answer on Stackoverflow
Solution 3 - SublimetextKurt BourbakiView Answer on Stackoverflow
Solution 4 - SublimetextDavid CookView Answer on Stackoverflow