Live Templates
for Windows and Linux
for OS X
Ctrl+Alt+S
Use this page to create, manage, and edit live templates.
On this page:
- List of available live templates
- Context menu of a live template
- Template editing area
- Side note about predefined template variables
- Predefined functions to be used in live template variables
List of available live templates
Item | Tooltip and shortcut | Description |
---|---|---|
By default expand with | Use this drop-down list to specify the default invocation key for all templates. Individual
expansion keys for the particular templates are defined in the editing area.
If the standard expansion keys (Tab, Enter, or Space) are not desirable, select the Custom option from this drop-down list. When Custom is selected, the Change link appears next to the drop-down, leading you to the Keymap page. | |
Live Templates | This list shows all currently available template abbreviations supplied with their descriptions. The abbreviations are grouped below nodes and sorted alphabetically within each group. To activate a template or an entire group, select the check box to its left. | |
![]() | Add Alt+Insert | Click this button to have a new template item added to the current group of template. You can define the template abbreviation, description, text, variables, expansion key, and context in the editing area below. |
![]() | Remove Delete | Click this button to have the selected live template removed from the list. |
![]() | Duplicate | Click this button to create a new template based on the selected template. A new template item is added to the current node and the fields in the Template Text area show the definition of the selected template. |
![]() | Restore | Click this button to restore the deleted live templates. This button is only enabled when the changes are applied. |
Context menu of a live template
Item | Description |
---|---|
Move | Choose a group to move the selected template to. |
Change context | Choose this command to modify the set of contexts where the current template is enabled.
Upon choosing this command, a list of supported language contexts is displayed. To make
PyCharm consider a context sensitive to the template, select a check box next to the context name.
The available context types depend on the enabled plugins. |
Copy | Choose this command to create a serialized template XML in the system clipboard. Refer to section Sharing Live Templates. |
Paste | Choose this command to paste an XML representation of the copied templates to the selected group of templates. Refer to section Sharing Live Templates. |
Restore defaults | This command only appears on the context menus of the modified templates, marked blue. Choose this command to restore the default template settings. |
Template editing area
The focus is moved to this area in the following cases:
- When you click the Add
or Copy
button.
- When you select a live template in the list.
- When you select a fragment of code in the editor and choose Tools | Save as Live Template.
Use controls of this area to create new live templates and edit the settings for the existing ones.
You can navigate through the Template Text Area using the hot keys that are marked in the field labels.
Item | Description |
---|---|
Abbreviation | In this text box, specify the template abbreviation. |
Description | In this text box, provide optional description of a template or an example of its usage. |
Template Text | In this text box, type the template body that may contain plain text and variables in the format
$<variable name>$ .
When editing the live template variables, mind the following helpful hints:
The Edit Variables button is enabled only if the template body
contains at least one user-defined variable, that is, a variable different from
Side note about predefined template variablesPyCharm supports two predefined live template variables: You cannot edit the predefined live template variables
|
Applicable in: | This read-only field shows the languages and/or pieces of code where the editor should be sensitive to the template. Upon pressing Ctrl+J in such context, PyCharm displays a list of templates that are valid for this context. |
Change |
Click this link to modify the set of contexts where the current template is enabled.
Upon clicking the link, a list of supported language contexts is displayed. To make
PyCharm consider a context sensitive to the template, select a check box next to the context
name.
The available context types depend on the enabled plugins. |
Edit Variables |
Click this button to open the Edit Template Variables dialog box,
where you can define how PyCharm should process template variables upon template expansion.
The Edit Variables button is enabled only if the template body
contains at least one user-defined variable, that is, a variable different from
|
Options | In this area, define the behavior of the editor when a template is expanded.
|
Predefined functions to be used in live template variables
Item | Description |
---|---|
camelCase(String) | Returns the string passed as a parameter, converted to camel case. For example,
my-text-file /my text file /my_text_file will be converted to
myTextFile . |
capitalize(String) | Capitalizes the first letter of the name passed as a parameter. |
capitalizeAndUnderscore(sCamelCaseName) | Capitalizes the all letters of a CamelCase name passed as a parameter, and inserts an underscore
between the parts. For example, if the string passed as a parameter is FooBar , then
the function returns FOO_BAR . |
classNameComplete() | This expression substitutes for the class name completion at the variable position. |
clipboard() | Returns the contents of the system clipboard. |
snakeCase(String) | Returns CamelCase string out of snake_case string. For example, if the string passed as a parameter is
foo_bar , then the function returns fooBar . |
collectionElementName | Removes _list and plural ending (s). |
complete() | This expression substitutes for the code completion invocation at the variable position. |
completeSmart() | This expression substitutes for the smart type completion invocation at the variable position. |
date(sDate) |
Returns the current system date in the specified format.
By default, the current date is returned in the default system format. However, if you specify date format in double quotes, the date will be presented in this format: ![]() |
decapitalize(sName) | Replaces the first letter of the name passed as a parameter with the corresponding lowercase letter. |
djangoBlock | Shows completion popup for the available Django blocks. |
djangoFilter | Shows completion popup for the available Django filters. |
djangoTemplateTags | Shows completion popup for the available Django template tags |
djangoVariable | Shows completion popup for the available Django variable. |
enum(sCompletionString1,sCompletionString2,...) | List of comma-delimited strings suggested for completion at the template invocation. |
escapeString(sEscapeString) | Escapes the specified string. |
expectedType() | Returns the type which is expected as a result of the whole template. Makes sense if the template is expanded in the right part of an assignment, after return, etc. |
fileName(sFileName) | Returns file name with extension. |
fileNameWithoutExtension() | Returns file name without extension. |
firstWord(sFirstWord) | Returns the first word of the string passed as a parameter. |
lineNumber() | Returns the current line number. |
lowercaseAndDash(String) | Returns lower case separated by dashes, of the string passed as a parameter. For example, the string
MyExampleName is converted to my-example-name .
|
snakeCase(sCamelCaseText) | Returns snake_case string out of CamelCase string passed as a parameter. |
spaceSeparated(String) | Returns string separated with spaces out of CamelCase string passed as a parameter. For example, if the
string passed as a parameter is fooBar , then the function returns
foo bar . |
pyClassName() | Returns the name of the current Python class (the class where the template is expanded). |
pyFunctionName() | Returns the name of the current Python function. |
time(sSystemTime) | Returns the current system time. |
underscoresToCamelCase(sCamelCaseText) | Returns the string passed as a parameter with CamelHump letters substituting for underscores.
For example, if the string passed as a parameter is foo_bar , then the function returns
fooBar . |
underscoresToSpaces(sParameterWithSpaces) | Returns the string passed as a parameter with spaces substituting for underscores. |
user() | Returns the name of the current user. |
JsArrayVariable | Returns JavaScript array name. |
jsClassName() | Returns the name of the current JavaScript class. |
jsComponentType | Returns the JavaScript component type. |
jsMethodName() | Returns the name of the current JavaScript method. |
jsQualifiedClassName | Returns the complete name of the current JavaScript class. |
jsSuggestIndexName | Returns a suggested name for an index. |
jsSuggestVariableName | Returns a suggested name for a variable. |