代码完成
最后修改时间:2023年12月4日配置:设置| 编辑| 一般| 代码完成
要自动完成,请启用“键入时显示建议”选项。
基本完成:CtrlSpace
智能类型匹配完成:CtrlShiftSpace
要拒绝所有建议,请按。Esc
本节介绍了上下文采集代码的各种技术,可以让您加快编码过程。
基本完成
基本代码补全可帮助您补全可见范围内的类、方法和关键字的名称。
当您调用代码完成时,PyCharm 会分析上下文并建议从当前插入符位置可访问的选项(建议还包括实时模板)。
提示
代码完成可用于自定义文件类型。但是,PyCharm 无法识别此类文件的结构,并且会建议选项,无论它们是否适合当前上下文。
提示
基本完成也可用于非英语键盘布局。
如果基本代码完成填写字段、参数或变量声明的部分,PyCharm 会根据项目类型建议可能的名称列表。
第二次调用基本代码完成会显示整个项目中的类、函数、模块和变量的名称,以及依赖关系。
调用基本完成
开始输入名字。
单击或选择代码|代码完成|主菜单中的基本内容。CtrlSpace
下图显示了以下情况的基本代码完成:
方法:
方法参数:
搜索:
Django 模板:
Python字符串文字中的文件路径补全:
如有需要,请按第二次(或按)。CtrlSpaceCtrlAltSpace
这显示了类、函数、模块和变量的名称。
类型匹配完成
智能类型匹配代码完成会过滤建议列表并仅显示适用于当前上下文的类型。
调用类型匹配完成
智能类型匹配代码完成会过滤建议列表并仅显示适用于当前上下文的类型。要调用完成类型匹配,请开始键入代码并按。或者,选择代码 |代码完成 |主菜单中的类型匹配。CtrlShiftSpace
报表完成
您可以使用语句完成创建正确的语法的代码结构。它会插入必要的语法元素,以便您能够开始键入下一条语句。CtrlShiftEnter
开始键入方法声明并在左括号后按。CtrlShiftEnter
PyCharm 自动使用强制参数完成方法声明
self
。开始在 Python 类中输入方法声明,self
之后 PyCharm 将插入到参数列表的左边。此行为可在编辑器设置的“智能键”页面中配置。
嬉皮完成
Hippie 补全是一个补全引擎,可以在可见范围内分析文本并根据当前上下文生成建议。它可以帮助您完成当前打开的任何文件中的任何单词。
将插入符号处的字符串扩展为现有单词
输入初始字符串并执行以下操作之一:
按或选择代码 | 代码完成 | 循环展开单词以搜索插入符号之前的匹配单词。Alt0/
按或选择代码 | 代码完成 | 循环展开单词(向后)可在插入符号之后和其他打开的文件中搜索匹配的单词。AltShift0/
第一个建议值出现,并且原型在源代码中突出显示。
接受建议,或按住该键并持续按下,直到找到所需的单词。Alt/
后缀代码补全
后缀代码补全可帮助您在编写代码时减少向后插入符跳转。您可以根据在点后键入的后缀、表达式的类型及其上下文,将已键入的表达式转换为不同的表达式。
启用并配置后缀完成
在“设置”对话框 ( ) 中,打开编辑器 | 一般| 后缀完成并选中启用后缀完成复选框。CtrlAlt0S
选择、、 或用于扩展后缀模板。TabSpaceEnter
启用/禁用所选语言的特定后缀模板。
转换带有后缀的语句
键入表达式,然后在点后键入后缀,例如,
.if:
def f(a): a.if
初始表达式被一条语句包裹
if
:def f(a): if a:
您可以在编辑器 |中禁用某些后缀补全模板。一般| Postfix IDE 设置完成页面 。CtrlAlt0S
您可以选择、、 或来展开后缀模板。TabSpaceEnter
您可以编辑预定义的后缀模板,例如,用较短的键替换长键,或扩展适用的表达式类型的列表。
提示
后缀完成选项显示为基本完成建议列表的一部分。要查看当前上下文中适用的后缀完成的完整列表,请按。Ctrl0J
创建自定义后缀模板
按打开 IDE 设置,然后选择编辑器 | 一般| 后缀完成。CtrlAlt0S
单击工具栏上的添加按钮 ( )。
在打开的弹出菜单中,选择您需要为其创建后缀模板的语言。
指定Key,它将调用模板的符号组合。
选择新模板将适用的表达式类型,并按以下格式键入目标表达式:
$EXPR$ <target_expression>
,例如[x for x in $EXPR$]
。添加
$END$
应用模板后要放置插入符号的位置,例如:[x$END$ for x in $EXPR$]
要让 PyCharm 在调用模板时自动转换最上面的适用表达式,请选中“应用到最上面的表达式”复选框。
否则,如果清除该复选框,PyCharm 将在您调用模板时提示您选择表达式。
F 字符串补全
每当您在普通字符串文字中打开大括号时,PyCharm 都会提供与 f 字符串相同的完成建议。当您选择建议的选项之一时,IDE 通过添加缺少的f
前缀和右花括号自动将文字转换为 f 字符串。
模块名称完成时自动导入
当您在 Python 代码中引用任何模块成员或包并调用代码完成时,PyCharm 会自动添加导入语句。代码完成时自动导入也适用于一些流行的包名称别名,例如np
fornumpy
或pd
for pandas
。
机器学习辅助代码完成
PyCharm 允许您根据其他用户在类似情况下所做的选择来确定完成建议的优先级。
ML 完成机制不会添加任何新元素,而是对从代码中检索到的元素进行排序。数据不暴露在任何地方;它是在当地收集的。
启用机器学习完成
按打开 IDE 设置并选择编辑器 | 一般| 代码完成。CtrlAlt0S
在“机器学习完成排名”下,启用“根据机器学习对完成建议进行排序”选项,然后选择要使用 ML 完成的语言。
启用相关性标记
按打开 IDE 设置并选择编辑器 | 一般| 代码完成。CtrlAlt0S
启用以下选项:
在完成弹出窗口中标记位置更改:使用和图标来指示建议的相关性是增加还是减少,从而表明建议在建议列表中向上或向下移动。
在完成弹出窗口中标记最相关的项目:使用图标指示列表中最合适的建议。
建议列表如下所示,带有重新排序的图标和最相关的项目。
全行代码完成
当您在编辑器中键入代码时,全行代码完成会提供建议。建议以灰色斜体显示。要接受建议,请按。Tab
笔记
全行代码完成完全在您的本地设备上运行,无需将数据发送到外部服务器。
启用全行完成
按打开 IDE 设置并选择编辑器 | 一般| 代码完成。CtrlAlt0S
在机器学习完成排名部分中,选择启用全行建议并确保也选择了Python 。
配置全线完成
将鼠标悬停在建议上。
在出现的弹出窗口中,单击并选择要用于接受建议的密钥。
要分配您自己的快捷方式,请选择“自定义”。
要快速访问全行完成设置,请单击弹出窗口。
配置代码完成设置
要配置代码完成选项,请转到编辑器 | 一般| IDE 设置的 代码完成页面。CtrlAlt0S
您可以选择以下设置:
物品 | 描述 |
---|---|
相符 | 选择是否希望在完成建议时考虑字母大小写。选择是否要匹配第一个字母或所有字母的大小写。 |
自动插入单个建议 | 如果只有一项关于基本和智能类型匹配完成的建议,则自动完成代码。 |
按字母顺序对建议排序 | 选择是否要按字母顺序对建议列表中的项目进行排序,而不是按相关性进行排序。 您可以随时通过单击建议列表并切换“按名称排序”选项来更改此行为。 |
在您键入时显示建议 | 如果您希望自动调用建议列表,而无需显式调用完成,请选择此选项。默认情况下启用此选项。 |
通过按空格、点或其他与上下文相关的键插入选定的建议 | 选择是否要通过键入取决于语言、上下文等的特定键来插入选定的建议。 |
显示文档弹出窗口 | 选择自动显示建议列表中每个项目的弹出窗口,以及当前在查找列表中突出显示的类、方法或字段的文档。 在右侧的字段中,指定延迟(以毫秒为单位),之后应出现弹出窗口。 |
适用时自动插入括号 | 如果启用此选项,当您完成函数/方法时,PyCharm 会自动插入一对左括号和右括号。 清除该复选框可禁止自动插入括号。 如果您使用左括号 要使用左括号 有关详细信息,请参阅使用特定键插入建议。 |
完成提示和技巧
从完成弹出窗口中打开完成设置
您可以直接从完成弹出窗口快速访问代码完成设置。
单击完成弹出窗口中的图标,然后选择代码完成设置。
之后,编辑| 一般| IDE 设置的 代码完成页面打开。CtrlAlt0S
缩小建议列表范围
您可以通过键入单词的任何部分(甚至是中间某个位置的字符)或在点分隔符后调用代码完成来缩小建议列表的范围。PyCharm 将显示建议,其中包括您在任何位置输入的字符。
这使得没有必要使用通配符:
如果是CamelCase或Snake_case名称,请仅键入首字母。PyCharm 自动识别并匹配首字母。
接受建议
您可以通过以下方式之一接受列表中的建议:
按或双击列表项将其插入到插入符号的左侧。Enter
按可替换插入符号右侧的字符。Tab
用于使当前代码构造在语法上正确(平衡括号、添加缺少的大括号和分号等)。CtrlShiftEnter
您还可以使用特定键插入选定的完成建议:转到编辑器| 一般| IDE 设置的 “代码完成”页面,然后选择“通过按空格、点或其他与上下文相关的键插入选定的建议”选项。这些键取决于语言、您的上下文等。CtrlAlt0S
笔记
虽然此设置可以帮助您节省时间,但打开它可能会导致意外插入项目。
查看参考
当您在建议列表中选择一个条目时,您可以通过按 来使用“快速定义”视图:CtrlShift0I
当您在列表建议中选择一个入境时间时,您可以通过按来使用“快速信息”查看:Ctrl0Q
查看代码层次结构
从您的建议列表中选择条目后,可以查看代码层次结构:
Ctrl0H- 查看类型层次结构
CtrlShift0H- 查看方法层次结构。
故障排除
如果代码完成失效,可能是由于以下原因之一造成的:
省电模式已打开(文件 | 打开它可以消除后台操作(包括错误突出显示、即时检查和完成代码),从而最大限度地减少笔记本电脑的功耗。
您的文件不位于内容根中,因此它无法获取代码完成所需的类定义和资源。
有关更多信息,请参阅配置项目结构。
包含您希望出现在完成建议列表中的类和函数的文件被标记为纯文本文件。
包含您希望出现在完成建议列表中的函数的外部库不会添加为依赖项或全局库。
如果收集完成选项所需的时间过长,代码完成弹出窗口可能不会自动。例如,如果计算机正忙于另一项任务。在这种情况下,您仍然可以通过热键手动激活完成弹出窗口Ctrl+Space。
感谢您的反馈意见!