编辑器#

Spyder 的多语言编辑器窗格是 IDE 的关键元素,您可以在其中创建、打开和修改源文件。编辑器提供了各种核心功能,例如自动补全、实时分析、语法高亮、水平和垂直拆分等等。此外,它还集成了许多强大的工具,以提供易用、高效的编辑体验。

Spyder's Editor pane, split horizontally and with style analysis

主要组件#

编辑器窗格包含以下区域

Spyder's Editor pane, showing its different areas (described below)
  1. 左侧边栏显示行号并显示当前文件中存在的任何代码分析警告。单击行号可选择该行上的文本,单击其右侧可设置一个断点

  2. 滚动条允许在文件中垂直和水平导航。

  3. 上下文(右键单击)菜单显示与所单击内容相关的操作。

  4. 选项菜单(右上角的“汉堡包”图标)包含与编辑器相关的有用设置和操作。

  5. 编辑器窗格顶部的位置栏显示当前文件的完整路径。

  6. 选项卡栏显示所有打开文件的名称。它还有一个浏览选项卡按钮(在左侧),用于显示所有打开的选项卡并在它们之间切换——这在打开许多选项卡时非常方便。

界面#

选项卡#

您可以在编辑器中使用选项卡浏览和导航已打开的文件。单击选项卡栏左侧的浏览选项卡按钮可显示已打开文件的列表,其中活动选项卡处于选中状态。

Spyder's Editor pane, showing the tabs browser

通过拖放或在选项菜单中使用按字母顺序排序选项卡来重新排序文件,该菜单还允许关闭活动选项卡右侧的所有选项卡,或关闭除活动选项卡外的所有选项卡。

Spyder's Editor pane, showing how to browse and sort open tabs alphabetically

文件切换器#

编辑器具有文件切换器,使您能够在多个打开的文件之间导航和切换。当打开多个文件时,文件切换器有助于找到任何文件。

Spyder's Editor pane, showing the file switcher

可以从文件 ‣ 文件切换器菜单或Ctrl-P访问它,并包含搜索功能。您可以键入已打开文件名称的任何部分,如果存在,按Enter键即可切换到该文件。

Spyder's Editor pane, showing searching and switching to an existing file

拆分面板#

编辑器可以水平和垂直拆分为任意数量的独立面板。这允许同时查看和编辑多个文件(或同一文件的不同部分)的内容。

Spyder's Editor pane, showing how to split panels

使用选项菜单中的垂直拆分Ctrl-Shift-{)和水平拆分Ctrl-Shift--)命令拆分编辑器,并使用关闭此面板Alt-Shift-W)来关闭选定的拆分面板。

注意

关闭此面板关闭一个拆分面板,而关闭则隐藏整个编辑器窗格(包括所有拆分,它们在编辑器重新打开时会恢复)。

编辑功能#

语法高亮#

为了提高代码的可读性,Spyder 具有语法高亮功能,它决定了编辑器中以及IPython 控制台中文本的颜色和样式。

您可以在首选项 ‣ 外观下配置和预览语法高亮主题和字体。语法高亮主题部分允许您更改语法元素和背景的颜色和样式以符合您的偏好。您可以在下拉菜单中切换可用主题、修改选定主题、创建新主题等等。字体部分允许您更改文本字体和大小。

Spyder's Editor pane, showing how to switch between syntax highlighting themes

注意

对语法高亮主题和字体设置所做的更改对所有源文件都通用,无论其语言如何。

代码单元#

Spyder 中的“代码单元”是通常在脚本中的一行代码块,可以轻松地在当前IPython 控制台中一次性执行。这类似于 Jupyter Notebook 和 MATLAB 中的“单元”行为。您可以根据需要将脚本分成任意数量的单元,或者根本不分——这由您选择。

Spyder's Editor pane, showing an example of a code cell

您可以使用以下任一开头行来分隔单元:

  • # %%(标准单元分隔符),或

  • # <codecell>(IPython notebook 单元分隔符)

在分隔符右侧提供描述将使该单元在大纲中拥有自己的名称。您还可以通过在单元分隔符中添加更多%符号来创建“子节”,例如,# %%% 用于创建二级子节,# %%%% 用于三级子节,等等。这会在大纲窗格中显示多个级别。

Spyder outline pane, showing an example of sub sections

注意

这仅影响单元在大纲中的显示方式,不影响在编辑器中运行它。

要运行单元中的代码,请使用运行 ‣ 运行单元、工具栏中的运行单元按钮或键盘快捷键(默认Ctrl-Enter/Cmd-Return)。您还可以运行一个单元格然后跳到下一个,让您快速遍历多个单元格,使用运行 ‣ 运行单元并前进(默认Shift-Enter)。

自动格式化#

编辑器内置支持使用多种流行工具自动格式化您的代码,包括 Autopep8Black菜单或上下文菜单中的使用 {tool} 格式化文件或选定内容命令将格式化选定片段(如果选择了文本)或整个活动文件。

Spyder Editor pane, showing an example of code selection formatting

您可以让编辑器在每次保存工作时自动格式化文件。要进行设置,请转到首选项 ‣ 补全和检查 ‣ 代码样式和格式化 ‣ 代码格式化并选中保存时自动格式化文件选项。

Spyder's preferences dialog, showing checking the autoformat files on save setting

运行代码#

编辑器允许您运行整个文件以及特定的行、选定内容或单元格。

当您的代码运行时,

运行文件#

使用运行 ‣ 运行菜单项、工具栏上的运行文件按钮或F5键来运行整个编辑器文件。使用运行 ‣ 重新运行上次脚本以重新运行上次使用上述方式执行的文件。

运行行/选定内容#

您可以使用工具栏或运行菜单中的运行选定内容或当前行选项来执行当前行或多行选定内容,以及使用F9键。运行当前行后,光标会自动前进到下一行,这样您就可以逐行执行代码。与运行文件不同,执行的行会显示在IPython 控制台中。

运行单元#

要运行单元格,请将光标置于其中,然后使用运行 ‣ 运行单元菜单项、工具栏上的运行当前单元按钮或Ctrl-Enter / Cmd-Return键盘快捷键。使用运行菜单/工具栏中的运行单元并前进Shift-Enter在运行后跳到下一个单元,这对于快速遍历单元格很有用。

运行配置#

您可以使用按文件运行配置对话框来设置每个文件的工作目录、控制台模式(当前、专用或外部)、命令行参数、执行选项(清除所有变量、在现有/空命名空间中运行、错误时调试)等等。

Spyder's Editor pane, showing the Run Configuration dialog

要访问它,请单击运行 ‣ 按文件配置…或按Ctrl-F6 / Cmd-F6

代码导航#

查找和替换#

要在当前文件中搜索文本,请使用搜索 ‣ 查找文本Ctrl-F / Cmd-F;要替换文本,请使用搜索 ‣ 替换文本Ctrl-R / Cmd-R。在编辑器下方结果面板中键入搜索字符串,会突出显示每个结果并计算总数。使用查找/替换面板中的查找上一个查找下一个按钮在匹配项之间导航,或使用搜索菜单中的相应条目,或使用F2F3键。使用.*按钮将搜索文本作为正则表达式处理,Aa表示区分大小写,而[–]表示仅匹配整个单词(例如,对于data,匹配data()但不匹配dataframe)。

Spyder's Editor pane, showing the find and replace panel

转到行#

转到行对话框允许跳转到活动文件中的特定行。通过搜索 ‣ 转到行Ctrl-L / Cmd-L打开它,键入要滚动到的行号并按Enter键(或单击确定)。

Spyder's Editor pane, showing the go to line feature

它还显示文件中的当前行号和总行数。

类/函数选择器#

此面板通过源 ‣ 显示类和函数选择器激活,显示(如果适用)编辑器光标所在的代码单元、函数/方法和类的名称。使用其下拉菜单可以查看并跳转到当前文件中的函数、方法和类。

Spyder's Editor pane, showing the class and function selector panel

代码分析和补全#

Spyder 使用语言服务器协议 (LSP) 为编辑器提供代码补全和代码检查功能,类似于 VSCode、Neovim 和其他流行的编辑器/IDE。

注意

许多与补全和代码检查相关的问题超出了 Spyder 的控制范围,它们是 LSP 或正在内省的代码的限制,但有些问题可以解决。请参阅补全/帮助不起作用以获取故障排除步骤。

Python 开箱即用,高级用户可以通过在首选项 ‣ 补全和检查 ‣ 其他语言下设置 LSP 服务器来为其他语言添加补全和代码检查支持。

代码补全#

编辑器中默认启用输入时自动代码补全功能,也可以通过Ctrl-Space / Cmd-Space手动触发,显示可能的补全项(每个都有弹出帮助)和可用的代码片段。例如,输入cla将显示关键字class、装饰器classmethod以及两个带有类模板的内置代码片段。使用方向键和Enter键,或双击来选择所需的补全项。

Spyder's Editor pane, showing a code completion example

您可以在首选项 ‣ 补全和检查 ‣ 常规 ‣ 补全下启用或禁用即时代码补全,以及修改其触发时机和显示结果。Spyder 还允许您在首选项 ‣ 补全和检查 ‣ 高级下定义要使用的自定义补全代码片段,除了 LSP 提供的那些之外。

代码检查和代码风格#

Spyder 可以在编辑器中选择性地高亮显示语法错误、风格问题和代码中的其他潜在问题,这有助于您快速发现错误,并使您的代码更易于阅读和理解。

Spyder's Editor pane, showing an example of a highlighted code error

编辑器的基本代码检查功能由 Pyflakes 提供支持,会警告代码中的语法错误和可能的错误。它默认启用,可以在首选项 ‣ 补全和检查 ‣ 代码检查下禁用或自定义。

Spyder's preferences dialog, showing linting settings

代码风格分析由 Pycodestyle 提供支持,会标记出与PEP 8 风格约定不符的地方。它默认不启用,但您可以在首选项 ‣ 补全和检查 ‣ 代码样式和格式化 ‣ 代码风格下的选项中启用它并自定义显示的Pycodestyle 错误代码

Spyder's preferences dialog, showing code style and formatting settings

自省功能#

如果您想检查某个函数、类或变量的定义,您需要在编辑器中Ctrl/Cmd-单击其名称(或单击其名称并按Ctrl-G / Cmd-G可跳转到其声明的文件和行)。

Spyder's Editor pane, showing the go to definition feature

您可以将鼠标悬停在对象名称上以获取弹出帮助,如帮助窗格文档中所述

Spyder's Editor pane, showing an example of a hover hint

最后,如果您键入函数、方法或类构造函数的名称,然后紧跟一个左括号,将弹出一个调用提示,显示您键入时的函数参数以及其文档摘要。这些功能可以在首选项 ‣ 补全和检查 ‣ 自省下启用和自定义。

键盘快捷键#

要查看编辑器的主要键盘快捷键,请查阅帮助 ‣ 快捷键摘要下的相关部分。完整的列表可以在首选项 ‣ 键盘快捷键中浏览、搜索和自定义(双击)。