从文本编辑器迁移
本指南适用于使用文本编辑器(如 Vim、Emacs 或 Sublime Text)的 Python 开发者,提供有关切换到 PyCharm 的信息。 它包括对 IDE 概念的简要讨论,然后探讨具体的差异。
什么是 IDE?
Python 开发者长期以来使用各种工具来编写代码。 尽管界限模糊,这些工具大致分为两类:文本编辑器和集成开发环境(IDE)。 简单来说,文本编辑器专注于单个文件的编辑,提供非常精简的体验。
IDE,顾名思义,具有更广泛的视角。 它们希望查看您的整个项目以及所有与编码相关的活动,并将这些统一到一致且强大的用户界面中。 尽管这两类工具有重叠,但整体范围是主要区别。
因为像 PyCharm 这样的 IDE 会查看所有代码——包括项目中的代码、依赖项中的代码以及平台本身的代码——它可以在编码活动中提供大量帮助。 这种分析和帮助体现在许多强大的功能中:
自动补全 通过完成您的输入来加速准确的编码
快速修复 发现常见错误并提供特定语言的修正
代码意图 为常见的 Python 模式建议优化和改进
代码重构 减轻频繁使用的 Python 重构的繁琐工作
模板 自动化重复任务
代码导航 分析所有代码及其使用的代码的结构和语义,提供丰富的方式在软件中移动
虽然文本编辑器提供了一些这些功能,但 PyCharm 超越了基于字符串的操作,处理代码和语言的 语义 ,提供智能辅助。 PyCharm 理解 Python,也理解您的代码,因此它可以跳转到符号定义的位置,或者类被使用的位置,或者重构方法及其在代码库中的用法。 事实上,这些功能不仅限于 Python:从 IntelliJ 家族的其他成员中,PyCharm 继承了针对 Web 开发和许多其他领域的一流 IDE 支持。
除了这些编码辅助功能,PyCharm 还将相关操作集成到同一环境中:版本控制、数据库管理、性能分析、测试运行、远程环境等。 这些功能以集成的方式交付:在查看差异时应用更改可以自动触发测试的重新运行。
最后,这种强大功能伴随着以产品为中心的思维方式:一切都能正常工作。 虽然其他工具有一长串 可能的功能,但您需要自己组装和维护这些功能的集合。 对于喜欢摆弄的人来说,这很好。 使用 PyCharm 作为您的 IDE,这些功能开箱即用,并且每年都能获得专业支持。
PyCharm 界面
由于像 PyCharm 这样的 IDE 范围如此广泛,用户界面(UI)比简单的文本编辑器需要更多的指导。 例如,这是 PyCharm 中的一个典型项目:

窗口标题包含一组小部件,可快速访问最常用的操作:项目小部件、VCS 小部件和运行小部件。 它还允许您打开 Code With Me、 全局搜索和 设置。
项目工具窗口位于左侧,显示您的项目文件。
编辑器位于右侧,您在其中实际编写代码。 它有便于在打开的文件之间导航的标签。
当您右键点击界面元素或代码片段时, 上下文菜单会打开,并显示可用的操作。
导航栏允许您快速导航项目文件夹和文件。
边距 ,编辑器旁边的垂直条显示您设置的断点,并提供一种方便的方式来 导航代码层次结构,例如转到定义/声明。 它还显示行号和每行的 VCS 历史记录。
滚动条 ,位于编辑器的右侧。 PyCharm 通过运行 代码检查不断监控您的代码质量。 右上角的指示器显示整个文件的代码检查总体状态。
工具窗口是附加在工作区底部和侧面的专用窗口。 它们提供对典型任务的访问,例如项目管理、源代码搜索和导航、与版本控制系统的集成、运行、测试、调试等。
状态栏指示项目和整个 IDE 的状态,并显示各种警告和信息消息,如文件编码、行分隔符、检查配置文件等。它还提供对 Python 解释器设置的快速访问。 它还提供对 Python 解释器设置的快速访问。

项目工具窗口位于左侧,显示您的项目文件。
编辑器位于右侧,您在其中实际编写代码。 它有便于在打开的文件之间导航的标签。
导航栏允许您快速导航项目文件夹和文件。
边距 ,编辑器旁边的垂直条显示您设置的断点,并提供一种方便的方式来 导航代码层次结构,例如转到定义/声明。 它还显示行号和每行的 VCS 历史记录。
滚动条 ,位于编辑器的右侧。 PyCharm 通过运行 代码检查不断监控您的代码质量。 右上角的指示器显示整个文件的代码检查总体状态。
工具窗口是附加在工作区底部和侧面的专用窗口。 它们提供对典型任务的访问,例如项目管理、源代码搜索和导航、与版本控制系统的集成、运行、测试、调试等。
状态栏指示您的项目和整个 IDE 的状态,并显示各种警告和信息消息,例如文件编码、行分隔符、检查配置文件等。 它还提供对 Python 解释器设置的快速访问。
此外,在 PyCharm 窗口的左下角的状态栏中,您会看到按钮 或
。 此按钮用于切换工具窗口栏的显示。 如果您将鼠标悬停在此按钮上,当前可用的工具窗口列表将显示出来。
请参阅页面 用户界面 和 工具窗口 了解有关显示或隐藏工具窗口的更多信息。
还是觉得太多了? 如果您正在从文本编辑器过渡并希望获得简洁的外观,PyCharm 提供了几种解决方案:
窗口和工具栏可以隐藏,直到需要时再显示。
免打扰模式 和其他模式移除了大部分视觉装饰,专注于代码,交互通过键盘快捷键和操作搜索完成。
事实上,PyCharm 通过以键盘为中心、以搜索为导向的交互方式,拥抱了现代、简洁的趋势。 不想点击菜单来重新格式化代码? 不仅有一个快捷键序列可以实现这一点,您还可以按 Ctrl+Shift+A 搜索“重新格式化代码”的操作:

项目
如前所述,PyCharm 不仅关注单个文件,还将项目视为一个完整的软件解决方案。 不仅是伴随项目的软件,还有相关的任务。
项目包含的不仅仅是这些工件。 在一个项目中,您可能会以特定顺序在标签页中打开 3 个文件。 这些信息会保存在项目的元数据中,位于项目根文件夹的 .idea 子目录中。因此,下次您打开项目时,您将恢复到该配置。 这不仅限于配置:PyCharm 保存并撤销更改 在您编辑时,依靠 本地历史记录 ,可以将代码恢复到之前的状态。 PyCharm 在其 IDE 中包含了大量与项目配置相关的内容:Python 设置、运行代码的场景、数据库连接信息等。
您的第一个项目
如果您当前使用文本编辑器,首次进入 PyCharm 时会询问您是否创建一个项目。 您有许多选项和机会。 让我们讨论其中的一些。
首先,您可能从一个空白开始,或者从磁盘上的现有目录开始,或者从尚未检出的远程存储库开始。
接下来,您可能有一个或多个 Python 解释器想要与您的项目一起使用。 PyCharm 支持本地安装的 Python 2 和 3,以及创建或重用虚拟环境。 它还支持基于 Anaconda 的解释器、远程解释器和 Docker。 您可以在启动 PyCharm 的“新建项目”向导之前设置这些,或者在项目创建过程中指定(甚至创建)这些。 此外,您可以在创建项目后更改主意。
使用 PyCharm Pro,我们让您轻松开始流行类型的项目。 例如,创建一个 Django 项目将生成一个遵循 Django 最佳实践的目录结构,并添加一个“运行配置”,在一个特殊的工具窗口中启动 Django 服务器。

IdeaVim
长期使用 vim的用户在如何使用编辑器方面投入了很多。 幸运的是,JetBrains 提供了一个非常强大且支持良好的 IntelliJ 插件,名为 IdeaVim ,它是“基于 IntelliJ 平台的 IDE 的 Vim 仿真插件”。
通过此插件,您可以在 PyCharm 中进入 Vim 仿真模式。 更多信息可在上面链接的 GitHub 页面,以及 Twitter 账号和 一个 PyCharm IdeaVim 视频教程中找到。 尽管有些过时,但这里有一篇 史诗级评论 ,深入探讨了一位前 vim用户的体验。
学习 在 PyCharm 中使用 Vim 编辑器(IdeaVim) 以了解如何在 PyCharm 中使用 IdeaVim 插件。
也可以将 vim配置为 外部工具 ,如 PyCharm:在 Vim、Emacs 或 Sublime Text 中打开当前文件中所述。
Emacs 和 emacsIDEAs
Emacs 和 vim 是两个深受资深开发者欢迎的文本编辑器。 PyCharm 提供了一个 键位映射 ,与许多 Emacs 键位序列相匹配。
虽然 PyCharm 没有一个与 IdeaVim功能全面匹配的 Emacs插件,但社区有一个活跃的插件,名为 emacsIDEAs ,提供了一些来自 Emacs 和 Emacs 扩展(如 AceJump)的有用功能。
自定义和扩展
PyCharm 的 IntelliJ 基础非常广泛(许多 IDE 基于此构建)且非常成熟,这也带来了另一个好处:PyCharm 非常可定制。 例如,它还提供了一个可选的、更暗的主题,名为“Darcula”,符合编辑器的现代趋势。 除了调整主题外,还可以自定义许多外观选项:字体大小、配色方案、工具栏设置、气泡行为等。
“外观”只是定制选项的开始。 我们讨论了切换到不同的 内置键位映射。 但您可以通过多种方式扩展和自定义键位映射,将不同的按键映射到不同的操作。 除此之外,PyCharm 的行为也可以扩展:安装插件、自定义操作的“模板”、更改代码意图等。
多光标
以下是其他工具开发者推崇的一个强大功能:多光标。 Sublime Text 首创了这一概念,IntelliJ 将其添加到其平台上的所有 IDE 中。 通过 PyCharm 的多光标 ,可以使用多个光标,IDE 操作会应用到每个光标。 这在 PyCharm 的 多选视频教程中有详细展示。
标签页和拆分窗口
成熟的文本编辑器(如 Emacs 和 vim)以其丰富的方式将屏幕分割为多个区域而闻名,允许同时显示多个文件。 这些工具不仅仅停留在基础功能:您可以在这些区域之间以丰富的方式移动,垂直或水平分割,重新分割,并且可以通过键盘完成所有这些操作。
PyCharm 也有一套 成熟的功能来显示多个文件。 最基本的,您可以将多个文件打开到标签页中,这些标签页可以手动重新组织或按字母顺序排序。 标签页可以固定或分离到一个单独的窗口中。
除了标签页,您还可以 将编辑器窗口拆分为独立的窗格,以同时显示多个文件/标签页。 拆分可以垂直或水平进行。 您可以通过将一个标签页移动到相对的组来重新排列当前打开的文件。

最后,以上所有操作都可以通过以键盘为中心的方式完成,使您无需使用鼠标即可轻松处理多个文件和窗口。
运行代码
虽然文本编辑器提供了处理 Python 代码运行的工具,但 PyCharm 通过一个名为 运行配置的功能将其提升到了更高的水平。 这些允许您定义与运行 Python(或其他语言,如 JavaScript)代码相关的参数。 然后,当您运行该运行配置时,所有相关设置都会被应用。
此外,PyCharm 在一个专用的工具窗口中运行您的代码,该窗口提供了许多与运行代码相关的功能:停止、重新运行等。 输出显示在一个迷你控制台中,错误会显示一个可点击的回溯,跳转到该文件的行号。 此工具窗口以及运行和重新运行代码的操作都可以通过键盘完成。
这些运行配置也适用于特殊类型的运行:测试运行配置有一个专用窗口显示测试输出,调试配置带有可视化调试器,测试覆盖率运行配置,性能分析运行配置,甚至并发图运行配置。 所有这些都为专业 Python 开发者的工作流程提供了真正的价值。
最后,PyCharm Pro 为其支持的框架添加了新的运行配置类型。 例如,Pyramid 运行配置了解 Pyramid 配置文件和 Pyramid 独有的功能。
提高效率的提示
- 从命令行运行
虽然 PyCharm 通常像其他应用程序一样启动(从桌面),但您也可以 从命令行使用 PyCharm 。这些可以在初始安装期间设置。 例如,在 Linux 和 macOS 上,/usr/local/bin/charm 可用于在 PyCharm 中打开一个文件。 您还可以运行检查并使用 PyCharm 的差异工具。
- 打开单个文件
您不需要创建一个项目来打开某个特定文件。 PyCharm 的 打开 菜单(或命令行程序“charm”)可以打开单个文件,无论是在现有项目窗口中还是在新窗口中。
- 临时文件
如果您需要一个临时编辑器来编辑一段代码或文本,并且不想将其保存在项目或文件中,PyCharm 提供了一个名为 临时文件的功能。 您可以创建一个临时文件(与某种语言相关联,因此具有语法高亮、代码补全、可运行等功能)或一个临时缓冲区(小段文本)。
这些临时文件具有许多功能:您可以列出它们(最多五个)、关闭并删除它们、将它们与某种语言关联并重新组织它们。 临时文件保存在项目中的一个特殊区域。
- 内置提示
当您首次安装 PyCharm 时,每次启动它都会为您提供一个友好的提示。 它还允许您关闭这些提示。 如果您之后想要 查看更多提示 ,请在主菜单中选择 。
- 安装插件
如前所述,PyCharm 和 IntelliJ 拥有一个庞大的 IDE 插件生态系统。 PyCharm 本身拥有近 500 个插件,涵盖了许多不同的类别。
事实上,PyCharm IDE 本身就是由插件组成的。 这就是为什么,例如,PyCharm 从 WebStorm 继承了许多 Web 功能:它们通过插件共享相同的核心功能。
通过 PyCharm 的设置对话框,可以浏览、安装、更新和删除 插件。 此外,插件会与 PyCharm 本身一起检查更新。 如果插件有更新,您将被要求下载并重新启动 PyCharm。
- 多语言开发
虽然文本编辑器支持 Python 之外的许多语言,但 PyCharm 在超越 Python 的能力上是独一无二的。 例如,PyCharm 是一个一流的 Web 开发 IDE。 它不仅对 HTML、CSS 和 JavaScript 提供语法高亮和自动补全。 它还提供了全方位的功能:语义感知的代码检查、重构、调试、启动实时服务器、将 SASS 文件翻译为 CSS、浏览 npm 运行脚本等。
这不仅适用于 Web 开发:还包括 IPython Notebook 仿真、reStructuredText 等。 为什么 PyCharm 能做到这一点? 如上所述,它与其他基于 IntelliJ 的 IDE 共享 JetBrains 插件。
- 缩略图
其他工具(如 Sublime Text 和 Visual Studio(通过附加组件))提供了一种可视化模式,用于滚动浏览大型文档。 通过这种模式,普通的滚动条被文档的图形缩略图及其当前滚动位置所取代。
PyCharm 用户也可以通过 CodeGlance JetBrains 插件获得这一功能,该插件根据所选主题编写。
其他资源
PyCharm 的 主页、 PyCharm 博客和 Twitter 账号。
在 社区论坛或 StackOverflow 主题中提问。