# 代码补全

> 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))）  `| 编辑器 | 常规 | 代码补全 | 弹出窗口`
>
>
>
> 要启用自动补全，请启用   输入时显示建议  。
>
>
>
> 基础补全： `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS))
>
>
>
> 若要拒绝所有建议，请按 `Escape` (Windows), `⎋` (macOS), `⎋` (IntelliJ IDEA Classic (macOS)), `⎋` (macOS System Shortcuts), `Escape` (XWin), `Escape` (GNOME), `Escape` (KDE), `Escape, Escape` (Emacs), `Escape` (Sublime Text), `⎋` (Sublime Text (macOS)), `Escape` (Visual Studio), `⎋` (Visual Studio (macOS)), `Escape` (NetBeans), `Escape` (Eclipse), `⎋` (Eclipse (macOS))。

基本代码补全帮助您完成类、方法、字段和关键字的名称，这些名称在可见范围内。

IntelliJ IDEA 分析上下文并建议从当前插入符号位置可以访问的选项。 建议还包括 [实时模板](using-live-templates.html)。 代码补全支持非英文键盘布局。

Procedure: 调用基本补全

* 默认情况下，IntelliJ IDEA 会在您输入时自动显示代码完成弹出窗口。

或者，您可以按 `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS)) 或从主菜单中选择  `代码 | 代码补全 | 基本` 。

[Video](https://resources.jetbrains.com.cn/help/img/idea/2026.3/ij_basic_completion_demo.mp4)

* 第二次调用代码补全时，会显示不可访问的类和成员（这些可以通过 [应用意图操作](intention-actions.html)来公开）。

* 连续第三次调用时，补全会在整个项目中查找类和接口名称的建议，而不考虑依赖关系。 如果必要的类尚未 [导入](creating-and-optimizing-imports.html)，将自动导入。

* 代码补全可用于 [custom file types](creating-and-registering-file-types.html)。 然而，IntelliJ IDEA 无法识别此类文件的结构，并会建议选项，而不考虑它们是否适合当前上下文。

Procedure: 从列表中接受一个建议

* 按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS)) 或双击相关列表项，将其插入到插入符号的左侧。

* 请按 `Tab` (Windows), `⇥` (macOS), `⇥` (IntelliJ IDEA Classic (macOS)), `⇥` (macOS System Shortcuts), `Tab` (XWin), `Tab` (GNOME), `Tab` (KDE), `Tab` (Emacs), `Tab` (Sublime Text), `⇥` (Sublime Text (macOS)), `Tab` (Visual Studio), `⇥` (Visual Studio (macOS)), `Tab` (NetBeans), `Tab` (Eclipse), `⇥` (Eclipse (macOS)) 替换插入点右边的字符。

* 使用 `Ctrl+Shift+Enter` (Windows), `⌘ ⇧ ⏎` (macOS), `⌘ ⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ ⏎` (macOS System Shortcuts), `Ctrl+Shift+Enter` (XWin), `Ctrl+Shift+Enter` (GNOME), `Ctrl+Shift+Enter` (KDE), `Ctrl+Shift+Enter` (Emacs), `Ctrl+Shift+Enter` (Sublime Text), `Ctrl+Shift+Enter` (Sublime Text (macOS)), `Ctrl+Shift+Enter` (Visual Studio), `⌘ ⇧ ⏎` (Visual Studio (macOS)), `Ctrl+Shift+Enter` (NetBeans), `Ctrl+Shift+Enter` (Eclipse), `⌘ ⇧ ⏎` (Eclipse (macOS)) 使当前代码结构在语法上正确（平衡括号、添加缺失的大括号和分号等）。

* 使用特定的键和自定义字符接受选定的补全建议。 要启用这些功能，请转到   编辑器 | 常规 | 代码补全 | 弹出窗口   设置页面 `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)) 并执行以下操作：

1.  要使用特定键，请选中   按空格、点或其他与上下文相关的键插入所选建议  复选框。 这些键取决于语言、您的上下文等因素。 对于 Java，这些键包括  `Space` 、 `Tab` (Windows), `Tab` (macOS), `Tab` (IntelliJ IDEA Classic (macOS)), `Tab` (macOS System Shortcuts), `Tab` (XWin), `Tab` (GNOME), `Tab` (KDE), `Tab` (Emacs), `Tab` (Sublime Text), `Tab` (Sublime Text (macOS)), `Tab` (Visual Studio), `Tab` (Visual Studio (macOS)), `Tab` (NetBeans), `Tab` (Eclipse), `Tab` (Eclipse (macOS))、  `[`  和  `]` 、  `(`  和  `)` ，以及其他一些键。

2.  若要使用自定义字符，请将字符输入到   接受完成的附加字符   字段。

> **Note:**
> 尽管此设置可以帮助您节省时间，但开启它可能会导致项目被意外插入。

> **Tip:**
> 在 Stream API 链中的完成功能能够识别类型转换，因此列表不仅会包含基于现有调用的项目  `filter(String.class::isInstance)` ，还会自动进行类型转换的建议。

## 排除并优先考虑用于代码补全的类

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. 在   从导入和补全中排除   下，添加您想要从补全中排除的类或包的名称。 您在此处指定的类不会出现在建议列表中。

您还可以从补全列表中排除项目：当补全建议列表打开时，按 `Alt+Enter` (Windows), `⌥ ⏎` (macOS), `⌥ ⏎` (IntelliJ IDEA Classic (macOS)), `⌥ ⏎` (macOS System Shortcuts), `Alt+Enter` (XWin), `Alt+Enter` (GNOME), `Alt+Enter` (KDE), `Alt+Enter` (Emacs), `Alt+Enter` (Sublime Text), `⌥ ⏎` (Sublime Text (macOS)), `Alt+Enter` (Visual Studio), `⌥ ⏎` (Visual Studio (macOS)), `Alt+Enter` (NetBeans), `Ctrl+1` (Eclipse), `⌘ 1` (Eclipse (macOS)) 并选择您想要排除的项目。

Procedure: 优先考虑用于代码补全的类

此选项允许您自动导入常用的 static 方法。 当您输入来自优先类的方法时，IDE 会显示补全建议。 从列表中选择一个建议会插入相应的导入语句，而无需手动编辑。

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. 在   在补全中包含 static 成员的自动导入  部分，点击 !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)或按 `Alt+Insert` (Windows), `⌥ Insert` (macOS), `⌥ Insert` (IntelliJ IDEA Classic (macOS)), `⌥ Insert` (macOS System Shortcuts), `Alt+Insert` (XWin), `Alt+Insert` (GNOME), `Alt+Insert` (KDE), `Alt+Insert` (Emacs), `Alt+Insert` (Sublime Text), `⌥ Insert` (Sublime Text (macOS)), `Alt+Insert` (Visual Studio), `⌥ Insert` (Visual Studio (macOS)), `Alt+Insert` (NetBeans), `Alt+Insert` (Eclipse), `⌥ Insert` (Eclipse (macOS))。

3. 指定您要添加到列表中的类。

您可以排除一些永远不应添加到 static 导入中的成员，例如  `的` 、  `valueOf`  等。 为此，请使用  `-` ，例如：

```GENERIC
-java.util.Objects.requireNonNull

```

4. 在类名的右侧，您还可以选择是否仅在当前项目中优先考虑它，还是在所有项目中（全局）优先考虑它。

[Video](https://resources.jetbrains.com.cn/help/img/idea/2026.3/ij_prioritized_class_auto_import.mp4)

##  配置代码补全设置 

要配置代码补全选项，请转到   编辑器 | 常规 | 代码补全 | 弹出窗口   设置页面 `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))。

您可以选择以下设置：

|     条目     |     描述     |
| --- | --- |
|    区分大小写    |  选择是否要考虑字母大小写来提供代码补全建议。 选择是匹配首字母的大小写还是所有字母的大小写。  |
|    自动插入单个建议用于    |  如果对基础和智能类型匹配补全只有一个建议，则自动完成代码。  |
|    按字母顺序对建议排序    |     选择是否按字母顺序排序建议列表中的项，而不是按相关性排序。       您可以随时通过点击建议列表中的 ![](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.actions.more.svg) 并切换   按名称排序   选项来更改此行为。     |
|    输入时显示建议    |  选择是否希望建议列表自动弹出，而无需明确调用补全功能。 此选项默认已启用。  |
|    按空格、点或其他与上下文相关的键插入所选建议    |  选择是否通过输入根据语言、上下文等因素确定的特定键来插入所选建议。 对于 Java，这些键包括空格键、Tab键、[ 和 ]、( 和 )，以及其他一些键。  |
|    在以下位置显示文档弹出窗口    |     为建议列表中的每一项自动 [显示弹出窗口](#doc-in-completion)，展示查找列表中当前高亮显示的类、方法或字段的文档。       当此选项被禁用时，按 `Ctrl+Q` (Windows), `F1` (macOS), `⌃ J` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Ctrl+Q` (XWin), `Ctrl+Q` (GNOME), `Ctrl+Q` (KDE), `Ctrl+Q` (Emacs), `Ctrl+Q` (Sublime Text), `Ctrl+Q` (Sublime Text (macOS)), `Ctrl+K, I` (Visual Studio), `⌘ K, I` (Visual Studio (macOS)), `Ctrl+Q` (NetBeans), `Alt+Middle-Click` (Eclipse), `⌥ Middle-Click` (Eclipse (macOS)) 以显示元素的文档。       在右侧字段中，指定弹出窗口应出现的延迟时间（以毫秒为单位）。     |
|       在适用时自动插入圆括号       |     如果启用此选项，IntelliJ IDEA 将在您完成函数/方法时自动插入一对开闭括号。      ![启用插入括号功能](https://resources.jetbrains.com.cn/help/img/idea/2026.3/ws_smart_keys_insert_parentheses_on.animated.gif)    取消选中该复选框以禁止自动插入括号。       如果您使用一个开括号  `(` 而不是 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS))从完成列表中应用选定项，那么无论该选项是否打开，括号都会自动插入。      ![完成时插入括号已禁用。 在补全带有开括号的情况下，仍然会插入括号。](https://resources.jetbrains.com.cn/help/img/idea/2026.3/ws_smart_keys_complete_with_parentheses.animated.gif)    要使用  `(`  开括号代替 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS)) 来应用补全列表中的选定项，请打开   设置   对话框（ `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))），转到  `编辑器 \| 常规 \| 代码补全 \| 弹出窗口` ，并选中   按空格、点或其他与上下文相关的键插入所选建议   复选框。       如需更多信息，请参阅 [Use specific keys to insert suggestions](#shortcuts_to_accept_suggestions)。     |
|    命令补全    |  |
|    启用命令补全    |  在编辑器中输入点时显示命令补全建议。 [命令补全](command-completion.html)作为各种表示常用代码操作的命令的入口点。  |
|    将命令补全显示为单独的组    |  将命令补全建议单独分组，以便更好地区分其他建议。  |
|    启用只读文件的命令补全    |  在只读文件中显示用于导航代码库、搜索用法和复制引用的命令补全建议。  |
|    HTML    |  |
|    在 HTML 文本中输入时启用标记名称代码补全的自动弹窗。    |     在 HTML 环境中，IntelliJ IDEA 默认会在输入纯文本且没有输入尖括号时显示补全建议。       清除复选框以关闭自动弹出。     |
|    JavaScript    |
|    仅基于类型的补全    |     默认情况下，IntelliJ IDEA 提供符号补全建议，而不考虑它们的类型。 使用这种方法，在复杂情况下，列表会显示多个补全变体。       若要使补全更加精准，请选择此选项。 完成列表将很大程度上依赖于 IntelliJ IDEA 推理。 因此，如果推理效果不佳，该列表可能会保持为空。     |
|    针对可空类型建议使用可选链的条目    |     默认情况下，IntelliJ IDEA 会建议带有 [可选链操作符 (?)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining)的符号的补全。 取消选中此复选框以抑制此行为。     |
|    在重写的补全中展开方法主体    |     默认情况下，当您想要重写父类或接口中的方法并从补全建议列表中选择此方法时，IntelliJ IDEA 会自动添加参数，生成  `super()`  调用，并在可能的情况下添加类型信息。       取消选中此复选框以在完成期间禁止自动生成重写的方法体。     |
|    名称补全    |      * 建议变量和参数名称 ：默认情况下，复选框为空。 选中后，IntelliJ IDEA 会在声明新类字段、变量和参数时建议名称。 这些建议是基于您的项目中定义的类、类型和接口的名称，您使用的库以及标准 API。    * 为类字段建议名称 默认情况下，该选项处于关闭状态。    * 为建议的参数名称添加类型注解 ：选中此复选框以提供每个完成建议的类型信息。 复选框只有在选中 建议变量和参数名称 复选框时才可用。    |
|    参数信息    |
|    在补全时显示参数名称提示    |  选择是否显示参数值的提示。  |
|    显示形参信息弹窗于    |     选中此复选框以便 IntelliJ IDEA 在编辑器中输入左括号或从建议列表中选择方法时自动显示所有可用方法签名的弹出窗口。       在右侧的文本字段中，指定弹出窗口应出现的延迟时间（以毫秒为单位）。       如果未选中此复选框，请使用 `Ctrl+P` (Windows), `⌘ P` (macOS), `⌘ P` (IntelliJ IDEA Classic (macOS)), `⌘ P` (macOS System Shortcuts), `Ctrl+P` (XWin), `Ctrl+P` (GNOME), `Ctrl+P` (KDE), `Alt+Shift+P` (Emacs), `Ctrl+P` (Sublime Text), `Ctrl+P` (Sublime Text (macOS)), `Ctrl+Shift+Space` (Visual Studio), `⌘ P` (Visual Studio (macOS)), `Ctrl+P` (NetBeans), `Ctrl+P` (Eclipse), `⌃ ⇧ Space` (Eclipse (macOS)) 显示参数信息。     |
|    显示完整方法签名    |  如果选择此复选框，参数信息将显示完整签名，包括方法名和返回类型。  |
|    SQL    |
|    建议对象来源    |     选择对象的建议来源：        * 仅当前搜索路径 ：仅为控制台选择的模式。 有关选择架构的更多信息，请参阅 [为查询控制台设置默认架构](schemas.html#set_default_schema_query_console)。    * 当前作用域 ：当前为控制台选择的模式和系统模式（例如，PostgreSQL 中的 `pg_catalog` ）。    * 所有可用模式 ：所有内省的模式。     仅当前路径:    ![仅建议来自当前路径的对象](https://resources.jetbrains.com.cn/help/img/idea/2026.3/suggest_objects_from_search_path.png)   当前作用域:    ![建议来自所有模式的对象](https://resources.jetbrains.com.cn/help/img/idea/2026.3/suggest_objects_from_the_current_scope.png)   所有模式:    ![建议来自所有模式的对象](https://resources.jetbrains.com.cn/help/img/idea/2026.3/suggest_objects_from_all_schemas.png)    |
|    限定对象使用    |     选择在何种情况下将对象限定为数据库、模式、表和视图，以及表和视图的别名。        * 始终 ：总是使用合格的对象名称，例如 `<schema_name>.<object_name>` 。    * 发生冲突时 ：仅当简称含糊时才使用限定对象名称，例如，当多个 schema 中存在同名对象时。    * 从不 ：始终使用未经限定的对象名称。     表/视图：始终:    ![对象始终限定为表](https://resources.jetbrains.com.cn/help/img/idea/2026.3/qualify_objects_with_tables_always.png)   表/视图：从不:    ![对象从不限定为表](https://resources.jetbrains.com.cn/help/img/idea/2026.3/qualify_objects_with_tables_never.png)    |
|    限定对象在    |     选择在给定情况下将对象限定为何种形式。        * 始终 ：总是使用合格的对象名称，例如 `<schema_name>.<object_name>` 。    * 发生冲突时 ：仅当简称含糊时才使用限定对象名称，例如，当多个 schema 中存在同名对象时。    * 从不 ：始终使用未经限定的对象名称。     JOIN 补全：始终:    ![JOIN 补全中的对象始终限定](https://resources.jetbrains.com.cn/help/img/idea/2026.3/qualify_objects_in_join_completions_always.png)   JOIN 补全：从不:    ![JOIN 补全中的对象从不限定](https://resources.jetbrains.com.cn/help/img/idea/2026.3/qualify_objects_in_join_completions_never.png)    |
|    在 JOIN 补全中使用别名    |     在  `JOIN`  语句中为表创建别名。      ![在 JOIN 补全中使用别名](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_use_aliases_in_completion_for_join.png)  |
|    反转自动生成的 ON 子句中操作数的顺序    |     在  `ON`  子句中切换操作数。 当复选框被清除时，  `FROM`  表在  `JOIN`  条件中排在第一位。      ![反转自动生成的 ON 子句中操作数的顺序](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_invert_order_of_operands_in_on_clause.png)  |
|    基于名称匹配建议非严格密钥    |     为  `JOIN`  语句生成可能的代码补全建议列表。 代码补全列表包括来自其他表的列建议，这些列与  `JOIN`  语句中的表的列同名。       阅读有关此选项调试规则的更多信息： [虚拟外键的调试规则](virtual-foreign-keys.html#debug-rules-for-virtual-foreign-keys)。      复选框已选中:    ![建议基于名称匹配的非严格外键已开启](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_suggest_non_strict_foreign_keys_based_on_the_name_matching_on.png)   复选框已清除:    ![基于名称匹配的推荐非严格外键已关闭](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_suggest_non_strict_foreign_keys_based_on_the_name_matching_off.png)    |
|    在补全表名时自动添加别名    |     为表名创建别名。      ![在补全表名时自动添加别名](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_add_aliases_for_table_names.png)  |
|    在表名后的补全中建议别名    |     在使用代码完成时为表名建议一个别名 ( `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS)))。      ![在表名后的补全中建议别名](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_suggest_alias_names_in_completion.png)  |
|    自定义别名（表）    |     您可以添加表名以及想要用于此表的别名。 要添加 table-alias 对，请点击   添加别名   按钮 ( ![添加别名按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg))。     |

## 完成提示和技巧

Procedure: 通过输入代码编号自动补全 HTTP 常量。

* 指定已导入的软件包名称（如  `http` ）后，您可以输入  `404`  以将值自动补全为  `http.StatusNotFound` 。

Procedure: 缩小建议列表

* 通过输入单词的任意部分（即使是中间的字符）或在点分隔符 . 后调用代码补全来缩小建议列表的范围。

IntelliJ IDEA 显示包含您输入字符的建议，无论其位置如何。 这使得不再需要使用通配符。

![codeCompletionWildcard.png](https://resources.jetbrains.com.cn/help/img/idea/2026.3/codeCompletionWildcard.png)

对于  CamelCase  或  snake_case  名称，请仅输入首字母。 IntelliJ IDEA 会自动识别和匹配首字母。

Procedure: 求反表达式

在 Java 中按下 `!` (Windows), `!` (macOS), `!` (IntelliJ IDEA Classic (macOS)), `!` (macOS System Shortcuts), `!` (XWin), `!` (GNOME), `!` (KDE), `!` (Emacs), `!` (Sublime Text), `!` (Sublime Text (macOS)), `!` (Visual Studio), `!` (Visual Studio (macOS)), `!` (NetBeans), `!` (Eclipse), `!` (Eclipse (macOS))以   您可以对表达式取反  ，在从建议列表中选择它之后。 结果，该表达式将被取反：

如果您在 [代码补全设置页面](null) 启用了   按空格、点或其他与上下文相关的键插入所选建议   选项，或者显式调用代码补全，或者显式更改建议列表中的选择，此方式对表达式取反是有效的。

Procedure: 代码补全快捷键

您可以使用以下 [实时模板](using-live-templates.html) 快捷方式来插入最常用的语句之一：

* `sout` ：打印  `System.out.printIn()`

* `soutm` ：添加当前类和方法名

* `soutp` ：添加方法参数名称和值

* `soutv` ：添加最后一个变量值

* `soutc` ：在期望消费者函数的地方插入  `System.out::printIn` 方法引用

Procedure: 查看参考

* 您可以在建议列表中选择一个条目时，按 `Ctrl+Shift+I` (Windows), `⌥ Space` (macOS), `⌘ ⇧ I` (IntelliJ IDEA Classic (macOS)), `⌘ Y` (macOS System Shortcuts), `Ctrl+Shift+I` (XWin), `Ctrl+Shift+I` (GNOME), `Ctrl+Shift+I` (KDE), `Ctrl+Shift+I` (Emacs), `Ctrl+Shift+I` (Sublime Text), `⌥ Space` (Sublime Text (macOS)), `Alt+F12` (Visual Studio), `⌥ Space` (Visual Studio (macOS)), `Ctrl+Shift+I` (NetBeans), `Ctrl+Shift+I` (Eclipse), `⌥ Space` (Eclipse (macOS)) 使用 [快速定义视图](viewing-definition.html)：

![快速定义](https://resources.jetbrains.com.cn/help/img/idea/2026.3/lookupListQuickDefView.png)

* 在建议列表中选择条目时，您可以通过按 `Ctrl+Q` (Windows), `F1` (macOS), `⌃ J` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Ctrl+Q` (XWin), `Ctrl+Q` (GNOME), `Ctrl+Q` (KDE), `Ctrl+Q` (Emacs), `Ctrl+Q` (Sublime Text), `Ctrl+Q` (Sublime Text (macOS)), `Ctrl+K, I` (Visual Studio), `⌘ K, I` (Visual Studio (macOS)), `Ctrl+Q` (NetBeans), `Alt+Middle-Click` (Eclipse), `⌥ Middle-Click` (Eclipse (macOS)) 或 [自动](#docpopup)方式使用 [快速文档视图](viewing-reference-information.html#inline-quick-documentation)：

![快速文档](https://resources.jetbrains.com.cn/help/img/idea/2026.3/lookupListQuickDocView.png)

Procedure: 查看代码层次结构

当您从建议列表中选择一个条目时，可以查看 [代码层次结构](viewing-structure-and-hierarchy-of-the-source-code.html)：

* `Ctrl+H` (Windows), `⌃ H` (macOS), `⌃ H` (IntelliJ IDEA Classic (macOS)), `⌃ ⌥ H` (macOS System Shortcuts), `Ctrl+H` (XWin), `Ctrl+H` (GNOME), `Ctrl+H` (KDE), `Ctrl+H` (Emacs), `Ctrl+H` (Sublime Text), `Ctrl+H` (Sublime Text (macOS)), `Ctrl+E, H` (Visual Studio), `⌘ E, H` (Visual Studio (macOS)), `Alt+Shift+F12` (NetBeans), `F4` (Eclipse), `F4` (Eclipse (macOS))：查看类型层次结构

* `Ctrl+Alt+H` (Windows), `⌃ ⌥ H` (macOS), `⌃ ⌥ H` (IntelliJ IDEA Classic (macOS)), `⌃ ⇧ H` (macOS System Shortcuts), `Ctrl+Alt+H` (XWin), `Ctrl+Alt+H` (GNOME), `Ctrl+Alt+H` (KDE), `Ctrl+Alt+H` (Emacs), `Ctrl+Alt+H` (Sublime Text), `⌃ ⌥ H` (Sublime Text (macOS)), `Ctrl+Alt+H` (Visual Studio), `⌃ ⌥ H` (Visual Studio (macOS)), `Ctrl+Alt+H` (NetBeans), `Ctrl+Alt+H` (Eclipse), `⌃ ⌥ H` (Eclipse (macOS))：查看调用层次结构。

* `Ctrl+Shift+H` (Windows), `⌘ ⇧ H` (macOS), `⌘ ⇧ H` (IntelliJ IDEA Classic (macOS)), `⌘ ⇧ H` (macOS System Shortcuts), `Ctrl+Shift+H` (XWin), `Ctrl+Shift+H` (GNOME), `Ctrl+Shift+H` (KDE), `Ctrl+Shift+H` (Emacs), `Ctrl+Shift+H` (Sublime Text), `Ctrl+Shift+H` (Sublime Text (macOS)), `Ctrl+Shift+H` (Visual Studio), `Ctrl+Shift+H` (Visual Studio (macOS)), `Ctrl+Shift+H` (NetBeans), `Ctrl+Shift+H` (Eclipse), `⌘ ⇧ H` (Eclipse (macOS))：查看方法层次结构。

观看此视频以了解更多关于 IntelliJ IDEA 中代码补全的工作原理：

[Video](https://www.youtube.com/v/jTud6GIqVgk)

## 故障排除

如果代码补全不起作用，可能是以下原因之一：

* 节能模式 在 ( `文件 | 节能模式` )。 开启它可以通过消除后台操作（包括错误高亮、即时检查和代码补全）来最大限度地减少笔记本电脑的电量消耗。

* 您的项目未 [配置](sdk.html) JDK。

* 您的文件不在内容根目录中，也未 [绑定到构建路径](content-roots.html#specify_output_path)，因此无法获得代码补全所需的类定义和资源。

* 包含您希望出现在补全建议列表中的类和方法的文件被标记为纯文本文件。

* 包含您希望出现在补全建议列表中的方法的外部库未被 [添加为依赖项或全局库](library.html)。

* 如果收集代码补全选项花费的时间太长，代码补全弹出窗口可能不会自动出现。 例如，如果计算机正在忙于其他任务。 在这种情况下，您仍然可以通过 `Ctrl+Space` (Windows), `⌃ Space` (macOS), `⌃ Space` (IntelliJ IDEA Classic (macOS)), `⌃ Space` (macOS System Shortcuts), `Ctrl+Space` (XWin), `Ctrl+Space` (GNOME), `Ctrl+Space` (KDE), `Alt+/` (Emacs), `Ctrl+Space` (Sublime Text), `⌃ Space` (Sublime Text (macOS)), `Ctrl+Space` (Visual Studio), `⌃ Space` (Visual Studio (macOS)), `Ctrl+Space` (NetBeans), `Ctrl+Space` (Eclipse), `⌃ Space` (Eclipse (macOS)) 手动激活代码补全弹出窗口。

## See also

### 开始

[编辑器基础](using-code-editor.html)

