PyCharm 2021.2 Help

File and Code Templates

PyCharm creates files using file templates as described in File templates. Use this page to view, edit, and create such templates .

Different groups of templates are located on different tabs.

When you select a template, its contents and description are displayed in the right-hand part of the page.

Per-project vs default scheme

Item

Description

Scheme

Choose whether file and code template settings pertain to the entire workspace, or the current project:

  • Default scheme is selected, when file and code templates are global.

  • Project scheme is selected, if you want to use the sharable project-specific file and code templates.

Tabs

Tab

Description

Files

This tab displays the available file templates.

You can edit the existing templates, or create new ones.

Includes

This tab shows the templates for reusable fragments that can be included in file templates.

You can edit the existing templates, or create new ones.

Code

This tab displays built-in snippets — templates for code fragments that PyCharm can generate in various typical situations, for example, for generating implemented or overridden method bodies.

You can edit the existing snippets, but you cannot create new ones.

Toolbar

Item

Tooltip

Description

the Create Template button

Create Template

Click this button to create a new template in the currently opened tab. This option is only available in the Files and the Includes tabs.

The location of the new template is defined by the Schema list.

the Remove Template button

Remove Template

Click this button to delete the selected template. This option is only available for certain templates in the Files and the Includes tabs.

the Copy Template button

Copy Template

Click this button to create a copy of the selected template. This option is only available in the Files and the Includes tabs.

the Reset to Default button

Reset to Default

Click this button to revert the selected template to its original state. This option is only available for the templates that have been modified (such templates are highlighted in blue).

N/A

Reset

This link appears in the top-right corner of the page when you start editing a template. Clicking this link resets all unsaved changes to any template in any tab.

Template settings and contents

Item

Description

Name

This field appears when a new template is created. Specify the name of the new template.

Extension

In this field, specify the extension. PyCharm will apply this template when new files of this type are created.

Template text

Edit the template contents. You can use:

  • Plain text.

  • #parse directives to work with template includes.

  • Custom variables. Variables' names can be defined either directly in the template through the #set directive or during the file creation.

    Note that PyCharm doesn't prompt for the values of Velocity variables defined with #set.

  • Variables to be expanded into corresponding values in the ${<variable_name>} format.

    The following predefined variables can be used in file templates:

    Variable

    Description

    ${DATE}

    Current system date

    ${DAY}

    Current day of the month

    ${DIR_PATH}

    Path to the directory of the new file (relative to the project root)

    ${DS}

    Dollar sign $. This variable is used to escape the dollar character, so that it is not treated as a prefix of a template variable.

    ${FILE_NAME}

    Name of the new file

    ${HOUR}

    Current hour

    ${MINUTE}

    Current minute

    ${SECOND}

    Current second

    ${MONTH}

    Current month

    ${MONTH_NAME_FULL}

    Full name of the current month (January, February, and so on)

    ${MONTH_NAME_SHORT}

    First three letters of the current month name (Jan, Feb, and so on)

    ${NAME}

    Name of the new entity (file, class, interface, and so on)

    ${PRODUCT_NAME}

    Name of the IDE (for example, PyCharm)

    ${PROJECT_NAME}

    Name of the current project

    ${TIME}

    Current system time

    ${USER}

    Login name of the current user

    ${YEAR}

    Current year

    Treating dollar sign

    • You can prevent treating dollar characters $ in template variables as prefixes. If you need a dollar character ($ inserted as is, use the ${DS} file template variable instead. When the template is applied, this variable evaluates to a plain dollar character $.

      Examples:

      • To use some version control keywords (such as $Revision$, $Date$, and so on) in your default class template, write ${DS} instead of the dollar prefix $.

      • The template code ${DS}this will be rendered as $this.

Reformat according to style

Select this checkbox, to have PyCharm reformat generated stub files according to the style defined on the Code Style page.

This option is only available in the Files tab.

Enable Live Templates

Select this checkbox to use a live template inside a file template. In doing so, one has to put the live template fragments into Velocity escape syntax.

For example:

#[[ $MY_VARIABLE$ $END$ ]]#

Thus, one can specify the cursor position. Note that it is required to use the live template variables here!

Description

This read-only field provides information about the template, its predefined variables, and the way they work.

This field is not available in custom templates.

Last modified: 09 November 2021