# 重排代码

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

## 配置排列规则

您可以根据 [Code Style](settings-code-style.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)) 打开设置并选择   编辑器 | 代码样式 | Java  。

2. 在   排列  选项卡上，在   分组规则  区域选择分组选项。

![分组规则示例](https://resources.jetbrains.com.cn/help/img/idea/2026.3/ij_grouping_rules.png)

对于   将依赖方法放在一起  选项，您可以选择   深度优先顺序  或   广度优先顺序  。 前者会按照嵌套层次结构来排列方法；后者会将来自同一嵌套级别的兄弟方法组合在一起。

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)) 打开设置并选择   编辑器 | 代码样式 | Java  。

2. 在   排列   选项卡上，点击 !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)，并在   匹配规则   区域中提供规则形参。

* 请使用 类型 和 修饰符 过滤器选择应由该规则管理的代码构造及其可见性修饰符。 请注意，双击过滤器将否定该条件。

* 请使用 名称 字段指定规则应影响的条目名称。 此筛选器只匹配条目名称，例如属性名称、方法名称、类名称等。 该筛选器支持正则表达式，并使用 [标准语法](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html)。 匹配是针对整个名称进行的。

* 要按字母顺序对代码条目进行排序，请选择合适的 匹配规则 条目并将 订单 字段设置为 按名称排序 。 ![匹配规则示例](https://resources.jetbrains.com.cn/help/img/idea/2026.3/matching_rules_example.png)

您还可以 [创建规则组（别名）](#create-rule-aliases)并在创建新匹配规则时引用它们。

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)) 打开设置并选择   编辑器 | 代码样式 | Java  。

2. 在   排列  标签上，点击 ![配置匹配规则别名](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.settings.svg)。

3. 在打开的 [规则别名定义对话框](null)中，添加一个组名及其规则。

* !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)：添加一个新别名。

* !["移除"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.remove.svg)：从列表中删除现有别名。

* ![重复按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.copy.svg)：将指定的规则序列复制到创建的别名中。

4. 在   规则别名定义  区域中，为创建的别名定义规则序列。

![规则别名定义](https://resources.jetbrains.com.cn/help/img/idea/2026.3/alias_dialog.png)

现在可以在 [添加匹配规则](#create-matching-rules)时引用创建的别名。

![匹配规则别名示例](https://resources.jetbrains.com.cn/help/img/idea/2026.3/matching_rules.png)

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)) 打开设置并选择   编辑器 | 代码样式 | Java  。

2. 在   排列   选项卡上，点击 ![“添加区段规则”按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.codeStyle.AddNewSectionRule.svg)，并在   匹配规则   区域中提供规则形参。

排列后，类中的方法将按照创建的部分规则重新排列，并被注释包围。

> **Tip:**
> 可以从排列中排除特定文件和文件夹。 有关更多信息，请参见 [排除文件格式化](reformat-and-rearrange-code.html#exclude_file_from_reformat)。

## 重排代码

Procedure: 在编辑器中重新排列代码

* 在编辑器中，选择您要重新排列的代码条目，然后在主菜单中进入  `代码 | 重新排列代码` 。

Procedure: 重新排列多个文件中的代码

* 在   项目   工具窗口 ( `Alt+1` (Windows), `⌘ 1` (macOS), `⌘ 1` (IntelliJ IDEA Classic (macOS)), `⌘ 1` (macOS System Shortcuts), `Alt+1` (XWin), `Alt+1` (GNOME), `Alt+1` (KDE), `Alt+1` (Emacs), `Alt+1` (Sublime Text), `⌘ 1` (Sublime Text (macOS)), `Ctrl+Alt+L` (Visual Studio), `⌘ ⌥ L` (Visual Studio (macOS)), `Ctrl+1` (NetBeans), `Alt+1` (Eclipse), `Alt+1` (Eclipse (macOS))) 中，选择要在其中重新排列代码的文件，然后在主菜单中转到  `代码 | 重新排列代码` 。

Procedure: 保存时自动重新排列代码

可以配置 IDE，使其在更改被 [保存](saving-and-reverting-changes.html)时自动重新排列已修改文件中的代码元素。

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. 启用   重排代码   选项。

此外，您可以点击   配置排列规则…  为所选语言指定代码元素重新排序的规则。

## 示例：将测试方法分组到各个节中

节规则允许你根据方法和字段的属性，如可见性修饰符或名称，将其组织到各个节中。 你可以定义用于标记每个节的开头和结尾的注释。

假设你有一个 Java 测试类，其中的方法用于测试不同操作，例如创建、更新和删除用户：

```JAVA
public class UserServiceTest {

    @Test
    public void testDeleteUser() {}

    @Test
    public void testCreateUser() {}

    @Test
    public void testUpdateUser() {}

    @Test
    public void testDeleteInactiveUser() {}

    @Test
    public void testCreateAdminUser() {}
}

```

可以配置排列规则，根据这些方法的名称将它们分组到单独的节中。

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)) 打开设置，然后选择  `编辑器 | 代码样式 | Java` 。

2. 切换到   排列   选项卡。

3. 在   分组规则   中，如果   将依赖方法放在一起   已选中，请清除它。

4. 在   匹配规则   中，点击   添加区段规则  。

5. 配置用于创建用户的测试的节：

* 将节起始注释设置为 `// Create user tests` 。

* 将节结束注释设置为 `// End create user tests` 。

6. 在节起始规则和节结束规则之间，为测试用户创建的方法添加匹配规则：点击   添加规则  ，并将   类型   设置为   方法  ，将   名称   设置为  `testCreate.*` 。

7. 对更新用户测试和删除用户测试重复步骤 4–6：

* 对于更新用户测试，将节起始注释设置为 `// Update user tests` ，将节结束注释设置为 `// End update user tests` ，并添加一条匹配规则，其中 类型 设置为 方法 ， 名称 设置为 `testUpdate.*` 。

* 对于删除用户测试，将节起始注释设置为 `// Delete user tests` ，将节结束注释设置为 `// End delete user tests` ，并添加一条匹配规则，其中 类型 设置为 方法 ， 名称 设置为 `testDelete.*` 。

![将测试方法分组到各个节中](https://resources.jetbrains.com.cn/help/img/idea/2026.3/rearrange_code_example.png)

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

9. 在编辑器中选择代码，然后转到主菜单中的  `代码 | 重新排列代码` 。

IntelliJ IDEA 会根据配置的规则重新排列测试方法，并将它们放入对应的节中：

```JAVA
public class UserServiceTest {

    // Create user tests
    @Test
    public void testCreateUser() {}

    @Test
    public void testCreateAdminUser() {}
    // End create user tests

    // Update user tests
    @Test
    public void testUpdateUser() {}
    // End update user tests

    // Delete user tests
    @Test
    public void testDeleteUser() {}

    @Test
    public void testDeleteInactiveUser() {}
}


```

## See also

### 过程

[编辑器配置](editorconfig.html) [Code style schemes](configuring-code-style.html) [Reformat code](reformat-and-rearrange-code.html)

### 参考

[Settings | Code Style](settings-code-style.html) [Settings | Code Style | Java](code-style-java.html)

