代码补全
基本代码补全帮助您完成类、方法、字段和关键字的名称,这些名称在可见范围内。
IntelliJ IDEA 分析上下文并建议从当前插入符号位置可以访问的选项。 建议还包括 实时模板。 代码补全支持非英文键盘布局。
调用基本补全
默认情况下,IntelliJ IDEA 会在您输入时自动显示代码完成弹出窗口。
或者,您可以按 Ctrl+Space 或从主菜单中选择 。
第二次调用代码补全时,会显示不可访问的类和成员(这些可以通过 应用意图操作来公开)。
连续第三次调用时,补全会在整个项目中查找类和接口名称的建议,而不考虑依赖关系。 如果必要的类尚未 导入 ,将自动导入。
代码补全可用于 custom file types。 然而,IntelliJ IDEA 无法识别此类文件的结构,并会建议选项,而不考虑它们是否适合当前上下文。
从列表中接受一个建议
按 Enter 或双击相关列表项,将其插入到插入符号的左侧。
请按 Tab 替换插入点右边的字符。
使用 Ctrl+Shift+Enter 使当前代码结构在语法上正确(平衡括号、添加缺失的大括号和分号等)。
使用特定的键和自定义字符接受选定的补全建议。 要启用这些功能,请转到 编辑器 | 常规 | 代码完成 设置页面  Ctrl+Alt+S 并执行以下操作:
要使用特定键,请选中 通过按空格、点或其他上下文相关键插入选定建议 复选框。 这些键取决于语言、您的上下文等因素。 对于 Java,这些键包括
Space、 Tab、[和]、(和),以及其他一些键。若要使用自定义字符,请将字符输入到 接受完成的附加字符 字段。
排除并优先考虑用于代码补全的类
从自动补全中排除某个类或包
按 Ctrl+Alt+S 打开设置,然后选择 。
在 从导入和补全中排除 下,添加您想要从补全中排除的类或包的名称。 您在此处指定的类不会出现在建议列表中。
您还可以从补全列表中排除项目:当补全建议列表打开时,按 Alt+Enter 并选择您想要排除的项目。
优先考虑用于代码补全的类
此功能允许您自动导入常用的静态方法。 当您输入来自优先类的方法时,IDE 会显示补全建议。 从列表中选择一个建议会插入相应的导入语句,而无需手动编辑。
按 Ctrl+Alt+S 打开设置,然后选择 。
在 在补全中包含 static 成员的自动导入 部分,点击
或按 Alt+Insert。
在打开的对话框中,指定您想要添加到列表中的类。 您可以通过名称搜索类,或从项目结构中选择它们。
在类名的右侧,您还可以选择是否仅在当前项目中优先考虑它,还是在所有项目中(全局)优先考虑它。
类型匹配补全
智能类型匹配代码补全 过滤建议列表,并仅显示适用于当前上下文的类型。
类型匹配补全在可以确定适当类型的情况下非常有用:
 在赋值语句的右边部分
 在变量初始化程序中
 在
return语句中 在方法调用的参数列表中
 对象声明中的
new关键字之后在链式表达式中
调用类型匹配补全
开始输入。 默认情况下,IntelliJ IDEA 会在您输入时自动显示代码完成弹出窗口。 如果自动完成已禁用,请按 Ctrl+Shift+Space 或从主菜单中选择 。

如有必要,请再次按 Ctrl+Shift+Space。 这允许您完成:
集合、列表和数组。 IntelliJ IDEA 搜索相同组件类型的符号并建议将其转换。
静态方法调用或常量引用。 IntelliJ IDEA 扫描静态方法和字段,并建议当前上下文中适用的内容。

语句补全
您可以使用语句完成来创建语法正确的代码结构。 它会插入必要的语法元素(圆括号、花括号和分号),并使您处于可以开始键入下一条语句的位置。
完成方法声明
开始输入方法声明,并在左括号后按 Ctrl+Shift+Enter。

完成代码构造
开始输入代码结构体并按 Ctrl+Shift+Enter。
IntelliJ IDEA 会自动完成构造并添加所需的标点。 文本光标位于下一个编辑位置。

将方法调用参数换行
输入表达式。 然后输入方法调用。 当
println在建议列表中获得焦点时,使用 Ctrl+Shift+Enter 选择它:
Hippie 补全
Hippie completion 是一个补全引擎,它分析您在可见范围内的文本并根据当前上下文生成建议。 它可以帮助您完成任何当前打开的文件中的任何单词。
将文本光标处的字符串扩展为现有单词
输入初始字符串,然后执行以下操作之一:
按 Alt+/ 或选择 搜索光标前的匹配词。
按 Alt+Shift+/ 或选择 以在文本光标后和其他打开的文件中搜索匹配的单词。
第一个建议值出现,而且原型在源代码中被高亮显示。

接受建议,或者按住 Alt 键并继续按 \ ,直到找到您需要的单词。
标签和属性的补全
IntelliJ IDEA 自动完成多种文件类型中的标签和属性名称及值:
HTML/XHTML,包括 CSS 类的自动完成和 JSX 内的 HTML 标签。
XML/XSL
JSP/JSPX
GSP
JSON. 更多信息,请参阅 编辑 package.json。
标签和属性名称的补全基于文件关联的 DTD 或 Schema。 如果没有 schema 关联,IntelliJ IDEA 将使用文件内容(标签名、属性名及其值)来完成您的输入。
在 XML/XSL 和 JSP/JSPX 文件中,标签库和命名空间的代码补全可用。
完整的标签名称
请输入开头
<然后开始输入标签名。 IntelliJ IDEA 显示在当前上下文中适用的标签名称列表。
使用 Up 和 Down 键滚动列表。
按 Enter 来接受列表中的选择。 如果您的文件与架构或 DTD 相关联,IntelliJ IDEA 将自动根据其插入必需的属性。
导入 taglib 声明
如果您需要使用在标签库中声明的标签,您需要在使用该标签库中的任何自定义标签之前导入此 taglib。
开始输入 taglib 前缀,然后按 Alt+Insert。
从列表中选择一个 taglib 然后按 Enter。
IntelliJ IDEA 自动导入所选的 taglib 并添加 import 语句。
在一个 taglib 中声明一个标签
开始键入标签,然后按 Ctrl+Alt+Space。
从列表中选择一个标签。 标签库的
uri显示在括号中。
请选择一个 taglib 然后按 Enter。 IntelliJ IDEA 会添加所选标签库的声明。
机器学习辅助的代码补全排序
IntelliJ IDEA 允许您根据其他用户在类似情况下的选择来优先考虑补全建议。
ML 补全机制不会添加任何新元素,而是对从代码中检索的元素进行排序。 数据不会暴露在任何地方;它是在本地收集的。
启用 ML 补全排序
按 Ctrl+Alt+S 打开设置并选择 编辑器 | 常规 | 代码完成。
在 机器学习辅助补全 下,启用 根据机器学习对补全建议进行排序 选项,并选择您希望使用 ML 补全的语言。

启用相关性标记
按 Ctrl+Alt+S 打开设置并选择 编辑器 | 常规 | 代码完成。
启用以下选项:
在补全弹出窗口中标记位置更改 :使用
和
图标来指示建议的重要性是增加还是减少,因此建议已在建议列表中上移或下移。
在补全弹出窗口中标记最相关的条目 :请使用
图标标识列表中最合适的建议。
建议列表将如下显示,图标标记重新排序和最相关的条目。

配置代码补全设置
要配置代码补全选项,请转到 编辑器 | 常规 | 代码完成 设置页面  Ctrl+Alt+S。
您可以选择以下设置:
条目 | 描述 | |
|---|---|---|
区分大小写 | 选择是否要考虑字母大小写来提供代码补全建议。 选择是匹配首字母的大小写还是所有字母的大小写。 | |
自动插入单个建议到 | 如果对基础和智能类型匹配补全只有一个建议,则自动完成代码。 | |
按字母顺序对建议排序 | 选择是否按字母顺序排序建议列表中的项,而不是按相关性排序。 您可以随时通过点击建议列表中的 | |
输入时显示建议 | 选择是否希望建议列表自动弹出,而无需明确调用补全功能。 此选项默认已启用。 | |
通过按空格、点或其他上下文相关键插入选定建议 | 选择是否通过输入根据语言、上下文等因素确定的特定键来插入所选建议。 对于 Java,这些键包括空格键、Tab键、[ 和 ]、( 和 ),以及其他一些键。 | |
以下时间后显示文档弹出窗口 | 选择自动显示弹出窗口,其中包含建议列表中当前突出显示的类、方法或字段的文档。 在右侧字段中,指定弹出窗口应出现的延迟时间(以毫秒为单位)。 | |
适用时自动插入圆括号 | 如果启用此选项,IntelliJ IDEA 将在您完成函数或方法时自动插入一对开闭括号。 ![]() 取消选中该复选框以禁止自动插入括号。 如果您使用一个开括号 ![]() 要使用 如需更多信息,请参阅 Use specific keys to insert suggestions。 | |
机器学习辅助补全 | ||
基于机器学习排序完成建议 | 如果您希望使用机器学习模型将最合适的项目在建议列表中排名更高,请选择此选项。 选择您希望基于机器学习启用建议的语言。 | |
在补全弹出窗口中标记位置更改 | 请使用 | |
在补全弹出窗口中标记最相关的条目 | 请使用 | |
JavaScript | ||
仅基于类型补全 | 默认情况下,IntelliJ IDEA 提供符号补全建议,而不考虑它们的类型。 使用这种方法,在复杂情况下,列表会显示多个补全变体。 若要使补全更加精准,请选择此选项。 完成列表将很大程度上依赖于 IntelliJ IDEA 推理。 因此,如果推理效果不佳,该列表可能会保持为空。 | |
为可 null 类型建议包含可选链接的条目 | 默认情况下,IntelliJ IDEA 会建议带有 可选链操作符 (?)的符号的补全。 取消选中此复选框以抑制此行为。 | |
在重写补全中展开方法体 | 默认情况下,当您想要重写父类或接口中的方法并从补全建议列表中选择此方法时,IntelliJ IDEA 会自动添加参数,生成 取消选中此复选框以在完成期间禁止自动生成重写的方法体。 | |
补全名称 |
| |
形参信息 | ||
补全时显示形参名称提示 | 选择是否显示参数值的提示。 | |
显示参数信息弹出窗口(毫秒) | 选中此复选框以便 IntelliJ IDEA 在编辑器中输入左括号或从建议列表中选择方法时自动显示所有可用方法签名的弹出窗口。 在右侧的文本字段中,指定弹出窗口应出现的延迟时间(以毫秒为单位)。 如果未选中此复选框,请使用 Ctrl+P 显示参数信息。 | |
显示完整的方法签名 | 如果选择此复选框,参数信息将显示完整签名,包括方法名和返回类型。 | |
SQL | ||
建议对象来源 | 选择对象的建议来源:
![]() ![]() ![]() | |
限定对象使用 | 选择在何种情况下将对象限定为数据库、模式、表和视图,以及表和视图的别名。 ![]() ![]() | |
限定对象在 | 选择在给定情况下将对象限定为何种内容。 ![]() ![]() | |
在JOIN 补全中使用别名 | 在 ![]() | |
反转自动生成的ON 子句中操作数的顺序 | 在 ![]() | |
根据名称匹配建议非严格外键 | 为 阅读有关此选项调试规则的更多信息: 虚拟外键的调试规则。 ![]() ![]() | |
在补全表名时自动添加别名 | 为表名创建别名。 ![]() | |
在表名之后的补全中建议别名 | 在使用代码完成时为表名建议一个别名 (Ctrl+Space)。 ![]() | |
自定义别名(表) | 您可以添加表名以及想要用于此表的别名。 要添加 table-alias 对,请点击 添加别名 按钮 ( | |
完成提示和技巧
缩小建议列表
通过输入单词的任意部分(即使是中间的字符)或在点分隔符 . 后调用代码补全来缩小建议列表的范围。
IntelliJ IDEA 显示包含您输入字符的建议,无论其位置如何。 这使得不再需要使用通配符。

对于 CamelCase 或 snake_case 名称,请仅输入首字母。 IntelliJ IDEA 会自动识别和匹配首字母。
求反表达式
在 Java 中按下 ! 以 您可以对表达式取反 ,在从建议列表中选择它之后。 结果,该表达式将被取反:
如果您在 代码补全设置页面 启用了 通过按空格、点或其他上下文相关键插入选定建议 选项,或者显式调用代码补全,或者显式更改建议列表中的选择,此方式对表达式取反是有效的。
代码补全快捷键
您可以使用以下 实时模板 快捷方式来插入最常用的语句之一:
sout:打印System.out.printIn()soutm:添加当前类和方法名soutp:添加方法参数名称和值soutv:添加最后一个变量值soutc:在期望消费者函数的地方插入System.out::printIn方法引用
查看参考
查看代码层次结构
当您从建议列表中选择一个条目时,可以查看 代码层次结构:
Ctrl+H :查看类型层次结构
Ctrl+Alt+H :查看调用层次结构。
Ctrl+Shift+H :查看方法层次结构。
观看此视频以了解更多关于 IntelliJ IDEA 中代码补全的工作原理:
故障排除
如果代码补全不起作用,可能是以下原因之一:
省电模式 在 ()。 开启它可以通过消除后台操作(包括错误高亮、即时检查和代码补全)来最大限度地减少笔记本电脑的电量消耗。
您的项目未 配置 JDK。
您的文件不在内容根目录中,也未 绑定到构建路径 ,因此无法获得代码补全所需的类定义和资源。
包含您希望出现在补全建议列表中的类和方法的文件被标记为纯文本文件。
包含您希望出现在补全建议列表中的方法的外部库未被 添加为依赖项或全局库。
如果收集代码补全选项花费的时间太长,代码补全弹出窗口可能不会自动出现。 例如,如果计算机正在忙于其他任务。 在这种情况下,您仍然可以通过 Ctrl+Space 手动激活代码补全弹出窗口。
















