# 文件模板

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

> **TL;DR**
> 配置：请按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后转到  `编辑器 | 文件和代码模板` 。

文件模板是新建文件的默认内容规范，您可以使用  `文件｜新建` 菜单或项目树上下文菜单中的   新建  部分来创建这些文件。

根据您正在创建的文件类型，模板提供该类文件中的初始代码和格式（按照行业或语言标准、您的公司政策或其他原因）。 例如，这可以是样板代码、作者的元信息等。

IntelliJ IDEA 提供了所有受支持文件类型的预定义模板，建议您在创建新文件时使用。 建议的文件类型集取决于模块和配置，以及您当前在   项目  工具窗口中位置的属性。 例如，IntelliJ IDEA 不会建议在 Java 源目录或测试目录之外创建 Java 类文件。 更多信息请参阅 [内容根](content-roots.html)。

例如，如果您右键点击   项目   工具窗口中的目录并选择   新建  （或按 `Alt+Insert` (Windows), `⌘ N` (macOS), `⌃ N` (IntelliJ IDEA Classic (macOS)), `⌘ N` (macOS System Shortcuts), `Alt+Insert` (XWin), `Alt+Insert` (GNOME), `Alt+Insert` (KDE), `Alt+Insert` (Emacs), `Ctrl+N` (Sublime Text), `⌘ N` (Sublime Text (macOS)), `Ctrl+N` (Visual Studio), `⌘ N` (Visual Studio (macOS)), `Alt+Insert` (NetBeans), `Alt+Insert` (Eclipse), `⌘ N` (Eclipse (macOS))），您将看到可以在此上下文中创建的文件列表。 这些文件在设置中配置了相应的文件模板。

![创建新文件时的文件模板列表](https://resources.jetbrains.com.cn/help/img/idea/2026.3/file-templates-example.png)

Procedure: 管理和配置文件模板

* 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `编辑器 | 文件和代码模板` 。

有关更多信息，请参见 [文件和代码模板](settings-file-and-code-templates.html)。

默认情况下，模板列表中仅包含 IntelliJ IDEA 提供的预定义模板。 其中一些是内部的，这意味着它们不能被删除或重命名。 IntelliJ IDEA 以加粗显示内部模板的名称。 您修改的模板名称以及您手动创建的自定义模板以蓝色显示。

以下过程描述了如何创建文件模板。 可以使用类似的程序来创建 [include templates](parse-directive.html)。

Procedure: 创建新文件模板

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `编辑器 | 文件和代码模板` 。

2. 使用   方案   列表，选择文件模板适用的作用域：

* 默认 ：在 IDE 级别创建的文件模板。 这些模板在使用当前 IDE 实例打开的所有项目中均可用。 可将其用作不受特定项目影响的个人首选模板。 IntelliJ IDEA 将全局模板存储在 [IDE 配置目录](directories-used-by-the-ide-to-store-settings-caches-plugins-and-logs.html#config-directory)下的 `fileTemplates` 中。

* 项目 ：特定于当前项目的文件模板。 这些模板对所有参与此项目的人员均可用。 IntelliJ IDEA 将它们存储在项目文件夹下的 `.idea/fileTemplates` 中。

3. 在   文件  选项卡上，点击 ![创建模板按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)并指定模板名称、文件扩展名、生成文件的名称和模板的主体。

4. 应用更改并关闭对话框。

Procedure: 复制现有的文件模板

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `编辑器 | 文件和代码模板` 。

2. 在   文件  选项卡上，点击 ![“复制模板”按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.copy.svg)并根据需要修改模板的名称、文件扩展名和主体。

3. 应用更改并关闭对话框。

Procedure: 将文件保存为模板

1. 在编辑器中打开文件。

2. 在主菜单中，前往  `文件 | 将文件另存为模板` 。

3. 在   将文件另存为模板  对话框中，指定新模板名称和扩展名，并在必要时编辑主体。 有关文件模板中使用的语法的更多信息，请参见 [语法](#syntax)

* 文件名 ：如果需要，请为从此模板创建的文件指定一个名称。 默认情况下，IntelliJ IDEA 会在添加文件时提示用户输入名称。 可以硬编码特定名称以完全避免该提示，或者使用可用变量组合模板。 例如，您可以这样使用指定的名称，但将其放置在文件创建时选择的目录上一级： `../${NAME}`

* 按照样式重新格式化 ：根据为此文件类型定义的 [code style](code-style.html)重新格式化基于此模板生成的内容。

* 启用实时模板 ：在文件模板中插入 [live templates](using-live-templates.html)。 在文件模板中使用 Velocity 转义语法包含 [实时模板 variables](template-variables.html)，例如： `#[[ $MY_VARIABLE$ $END$ ]]#`

4. 应用更改并关闭对话框。

## 语法

文件模板使用 [Velocity Template Language](https://velocity.apache.org/) (VTL)，其中包括以下结构：

* 呈现为纯文本。

* [变量](file-template-variables.html)会被它们的值替换。 例如， `${NAME}` 会在添加文件时插入用户提供的名称。

* 各种指令，包括 [#parse](parse-directive.html)、 `#set` 、 `#if` 等。

开始键入  `$` 或  `#` ，以引用 [补全](auto-completing-code.html)建议的可用变量和指令。

如需更多信息，请参阅 [VTL 参考指南](http://velocity.apache.org/engine/2.0/vtl-reference.html)。

以下示例显示了在 IntelliJ IDEA 中创建 Java 类的默认模板：

```VELOCITY
#if (${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")
public class ${NAME} {
}

```

在此模板中：

* `#if` 指令检查包名称是否为空，如果不是，则将名称添加到作为 `${PACKAGE_NAME}` 变量传递的包声明中。

* `#parse` 指令 [插入](parse-directive.html)另一个名称为 `File Header.java` 的模板的内容，该模板可在 包含 选项卡的 编辑器 | 文件和代码模板 设置页面 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 中找到。

* 然后，模板声明了一个公共类，其名称作为 `${NAME}` 变量（新文件的名称）传递。

当您创建一个新的 Java 文件时，此模板会生成一个内容类似于以下内容的文件：

```JAVA
package demo;

/**
 * Created by IntelliJ IDEA.
 * User: John.Smith
 * Date: 6/1/11
 * Time: 12:54 PM
 * To change this template use File | Settings | File and Code Templates.
 */
public class Demo {
}

```

## See also

### 参考

[文件和代码模板](settings-file-and-code-templates.html)

