stelios-c
4/18/2017 - 9:29 AM

Sublime snippet documentation

Sublime snippet documentation

Environment Variables

Snippets have access to contextual information in the form of environment variables. Sublime Text sets the values of the variables listed below automatically.

You can also add your own variables to provide extra information. These custom variables are defined in .sublime-options files.

$PARAM1, $PARAM2…	Arguments passed to the insert_snippet command. (Not covered here.)
$SELECTION	The text that was selected when the snippet was triggered.
$TM_CURRENT_LINE	Content of the line the cursor was in when the snippet was triggered.
$TM_CURRENT_WORD	Current word under the cursor when the snippet was triggered.
$TM_FILENAME	File name of the file being edited including extension.
$TM_FILEPATH	File path to the file being edited.
$TM_FULLNAME	User’s user name.
$TM_LINE_INDEX	Column the snippet is being inserted at, 0 based.
$TM_LINE_NUMBER	Row the snippet is being inserted at, 1 based.
$TM_SELECTED_TEXT	An alias for $SELECTION.
$TM_SOFT_TABS	YES if translate_tabs_to_spaces is true, otherwise NO.
$TM_TAB_SIZE	Spaces per-tab (controlled by the tab_size option).
Let’s see a simple example of a snippet using variables:

====================================
USER NAME:          $TM_FULLNAME
FILE NAME:          $TM_FILENAME
 TAB SIZE:          $TM_TAB_SIZE
SOFT TABS:          $TM_SOFT_TABS
====================================

# Output:
====================================
USER NAME:          guillermo
FILE NAME:          test.txt
 TAB SIZE:          4
SOFT TABS:          YES
====================================
Fields

With the help of field markers, you can cycle through positions within the snippet by pressing the Tab key. Fields are used to walk you through the customization of a snippet once it’s been inserted.

First Name: $1
Second Name: $2
Address: $3
In the example above, the cursor will jump to $1 if you press Tab once. If you press Tab a second time, it will advance to $2, etc. You can also move backwards in the series with Shift+Tab. If you press Tab after the highest tab stop, Sublime Text will place the cursor at the end of the snippet’s content so that you can resume normal editing.

If you want to control where the exit point should be, use the $0 mark.

You can break out of the field cycle any time by pressing Esc.

Mirrored Fields

Identical field markers mirror each other: when you edit the first one, the rest will be populated with the same value in real time.

First Name: $1
Second Name: $2
Address: $3
User name: $1
In this example, “User name” will be filled out with the same value as “First Name”.

Place Holders

By expanding the field syntax a little bit, you can define default values for a field. Place holders are useful when there’s a general case for your snippet but you still want to keep its customization convenient.

First Name: ${1:Guillermo}
Second Name: ${2:López}
Address: ${3:Main Street 1234}
User name: $1
Variables can be used as place holders:

First Name: ${1:Guillermo}
Second Name: ${2:López}
Address: ${3:Main Street 1234}
User name: ${4:$TM_FULLNAME}
And you can nest place holders within other place holders too:

Test: ${1:Nested ${2:Placeholder}}