本指南适用于使用 Vim、Emacs 或 Sublime Text 等文本编辑器并需要有关切换到 PyCharm 的信息的 Python 开发人员。它包括对 IDE 概念的简要讨论,然后探讨具体差异。
Python 开发人员长期以来一直使用各种工具来编写代码。尽管界限很模糊,但这些工具分为两大阵营:文本编辑器和集成开发环境 (IDE)。过度简化的文本编辑器专注于单个文件的编辑,提供非常简洁的体验。
顾名思义,IDE 拥有更广阔的视野。他们希望查看您的整个项目以及所有与编码相关的活动,并将它们统一到一个一致的、强大的 UI 中。虽然这两个部分重叠,但总体范围是主要区别。
因为像 PyCharm 这样的 IDE 会查看所有代码——在您的项目中、在您的依赖项中以及在平台本身中——它可以在编码活动中提供很多帮助。这种分析和帮助显示在许多强大的设施中:
自动完成通过完成您的输入来加速准确的编码
快速修复发现常见错误并提供特定语言的更正
代码意图建议对常见 Python 模式进行优化和改进
代码重构使常用的 Python 重构摆脱了繁重的工作
模板自动执行重复任务
代码导航分析所有代码及其使用的代码的结构和语义,以提供丰富的方式在您的软件中移动
虽然文本编辑器提供了其中一些工具,但 PyCharm 超越了面向字符串的操作,并解决了代码和语言的语义,提供了智能帮助。PyCharm 理解 Python 并理解您的代码,因此它可以跳转到定义符号的位置或使用您的类的位置,或者重构方法及其在代码库中的用法。事实上,这些功能超越了 Python:从 IntelliJ 家族的兄弟中,PyCharm 继承了对 Web 开发和许多其他领域的一流 IDE 支持。
除了这些编码辅助工具之外,PyCharm 还将相关操作与同一环境联系起来:版本控制、数据库管理、分析、测试运行、远程环境等。这些工具中的每一个都以集成的方式提供:在查看差异时应用更改可以自动触发重新运行测试。
最后,这种力量来自于以产品为中心的心态:一切正常。虽然其他工具具有一长串可能的功能,但您需要自己组装和维护聚合。这对于喜欢修补的人来说很好。使用 PyCharm 作为您的 IDE,这些功能开箱即用,年复一年地得到专业支持。
由于像 PyCharm 这样的 IDE 具有如此广泛的范围,用户界面 (UI) 需要比简单的文本编辑器更多的方向。例如,这是 PyCharm 中的一个典型项目:
右侧的编辑器,您实际编写代码的地方。它具有用于在打开的文件之间轻松导航的选项卡。
编辑器上方的导航栏还允许您快速运行和调试应用程序以及执行基本的VCS 操作。
Gutter是编辑器旁边的垂直条纹,显示了您拥有的断点,并提供了一种方便的方式来浏览代码层次结构,例如转到定义/声明。它还显示行号和每行 VCS 历史记录。
滚动条,在编辑器的右侧。PyCharm 不断监控您的代码质量,并始终在装订线中显示其代码检查的结果:错误、警告等。右上角的指示器显示整个文件的代码检查的总体状态。
工具窗口是附加在工作区底部和侧面的专用窗口,提供对项目管理、源代码搜索和导航、与版本控制系统集成等典型任务的访问。
状态栏指示您的项目和整个 IDE 的状态,并显示各种警告和信息消息,如文件编码、行分隔符、检查配置文件等。它还提供对 Python 解释器设置的快速访问。
还是太多了?如果您正在从文本编辑器过渡并想要简洁的外观,PyCharm 有几种解决方案:
窗口和工具栏可以隐藏直到需要
无干扰模式和其他模式删除了大部分视觉镶边,专注于代码,通过键盘快捷键和动作搜索完成交互
事实上,PyCharm 已经通过以键盘为中心、面向搜索的交互来呈现其大部分操作,从而迎合了现代、整洁的趋势。不想单击菜单重新格式化您的代码?不仅有一个按键顺序,而且您可以按Ctrl+Shift+A搜索“重新格式化代码”的操作:
如前所述,PyCharm 超越了文件,而是将项目视为完整的软件解决方案。不仅是项目附带的软件,还有相关的任务。
该项目不仅包含这些工件。在一个项目中,您可能会按特定顺序在选项卡中打开 3 个文件。该信息保存在项目的元数据中,在项目根文件夹的 .idea 子目录中,因此,下次打开项目时,您将恢复到该配置。这适用于配置之外:PyCharm在您编辑时保存和恢复更改,由可以将代码返回到其先前状态的本地历史记录支持。PyCharm 在它的 IDE 中有大量作为项目配置的一部分:Python 设置、运行代码的场景、数据库的连接信息等等。
如果您当前使用文本编辑器,您进入 PyCharm 的第一步将询问您有关创建项目的信息。你有很多选择和机会。让我们讨论其中的一些。
首先,您可能是从一张白纸开始,或者从磁盘上的现有目录开始,或者从尚未签出的远程存储库开始。PyCharm有特定的工具来帮助处理所有这些情况。例如,在选择项目的起点时能够浏览 GitHub 帐户的存储库,这真是太好了。
接下来,您可能有一个或多个要用于项目的 Python 解释器。PyCharm 支持本地安装的 Python 2 和 3,以及创建或重用虚拟环境。它还支持基于 Anaconda 的解释器、远程解释器、Vagrant 和 Docker。您可以在启动 PyCharm 的“新建项目”向导之前设置这些,或者在项目创建期间指定(甚至创建)这些。同样,您可以在创建项目后改变主意。
借助 PyCharm 专业版,我们可以轻松开始流行类型的项目。例如,创建一个 Django 项目将生成一个遵循 Django 最佳实践的目录结构,并在一个特殊的工具窗口中添加一个启动 Django 服务器的“运行配置”。
长期使用vim的用户在如何使用编辑器上投入了大量精力。幸运的是,JetBrains 有一个非常强大且支持良好的 IntelliJ 插件,称为IdeaVim,它充当“基于 IntelliJ 平台的 IDE 的 Vim 仿真插件”。
使用这个插件,你可以在 PyCharm 中进入 Vim 模拟器模式。更多信息可在上面链接的 GitHub 页面以及Twitter 帐户和 PyCharm IdeaVim截屏中获得。虽然有点过时,但这里有一篇史诗般的评论,由一位前vim用户深入了解。
学习Use Vim Editor in PyCharm (IdeaVim)学习如何在 PyCharm 中使用IdeaVim插件。
也可以将vim配置为外部工具,如PyCharm 中所述:在 Vim、Emacs 或 Sublime Text 中打开当前文件。
Emacs和vim是铁杆开发人员常用的两种文本编辑器。PyCharm 提供了一个匹配许多 Emacs 键序列的键映射。
虽然 PyCharm 没有与IdeaVim的全部范围相匹配的Emacs插件,但社区有一个名为emacsIDEAs的活跃插件,它提供了一些来自 Emacs 和 Emacs 扩展(如 AceJump)的有用功能。
PyCharm 的 IntelliJ 基础非常广泛(许多 IDE 在其上构建)并且非常成熟,这也带来了另一个好处:PyCharm 非常可定制。例如,它还提供了一个可选的、更暗的主题,称为“Darcula”,它与编辑器的现代趋势相匹配。除了调整“血红素”之外,还可以自定义许多外观选项:字体大小、配色方案、工具栏设置、气球行为等等。
“它看起来如何”只是自定义选项的开始。我们讨论了切换到不同的捆绑键盘映射。但是您可以通过多种方式扩展和自定义键盘映射,将不同的击键映射到不同的操作。除此之外,PyCharm 的行为还可以扩展:安装插件、自定义操作“模板”、更改代码意图等等。
这是其他工具的开发人员发誓的强大功能:多个光标。Sublime Text 开创了这一概念,IntelliJ 为其平台上的所有 IDE 添加了该概念。使用PyCharm 的 multicursor,可以使用多个插入符号,并将 IDE 操作应用于每个插入符号。这在 PyCharm多选截屏视频中有详细说明。
Emacs 和 vim 等成熟的文本编辑器以丰富的方式而闻名,它们可以将屏幕分割成多个区域,允许同时显示多个文件。这些工具超越了基础:您可以在这些区域之间以丰富的方式移动,垂直或水平分割,重新分割,并通过键盘完成所有这些操作。
PyCharm 还具有一套成熟的显示多个文件的功能。在最基本的情况下,您可以将多个文件打开到选项卡中,可以手动重新组织或按字母顺序排序。选项卡可以固定或分离到单独的窗口中。
除了选项卡之外,您还可以将编辑器窗口拆分为独立的窗格,以一次显示多个文件/选项卡。拆分可以垂直或水平进行。您可以通过将选项卡移动到相反的组来重新排列当前打开的文件。
最后,以上所有操作都可以以键盘为中心的方式完成,无需使用鼠标即可轻松处理多个文件和窗口。
虽然文本编辑器提供了用于处理 Python 代码运行的工具,但 PyCharm 使用称为运行配置的工具更进一步。这些允许您定义与运行 Python(或其他语言,如 JavaScript)代码相关的参数。然后,当您运行该运行配置时,将应用所有相关设置。
此外,PyCharm 在一个专门的工具窗口中运行您的代码,该窗口提供了许多用于处理正在运行的代码的功能:停止、重新运行等。输出显示在迷你控制台中,错误显示带有可单击以跳转到该文件的行号的行的回溯。这个工具窗口,以及运行和重新运行代码,都可以通过键盘驱动。
这些运行配置也适用于特殊类型的运行:带有用于显示测试输出的专用窗口的测试运行器配置、使用可视调试器的调试配置、测试覆盖运行配置、分析器运行配置,甚至是并发图配置。所有这些都为专业 Python 开发人员的工作流程提供了真正的价值。
最后,PyCharm Professional 为其支持的框架添加了新类型的运行配置。例如 Pyramid 运行配置知道 Pyramid 配置文件和 Pyramid 独有的功能。
虽然 PyCharm 传统上像其他应用程序(从桌面)一样启动,但您也可以从命令行使用 PyCharm这些可以在初始安装期间进行设置。例如,在 Linux 和 macOS 上,/usr/local/bin/charm 可用于在 PyCharm 中打开文件。您还可以运行检查并使用 PyCharm 的 diff 工具。
您不必创建项目即可打开某些特定文件。PyCharm 的打开菜单(或命令行“charm”程序)可以在现有项目的窗口或新窗口中打开单个文件。
如果您需要一个临时编辑器来处理一段代码或文本,并且不想将其保存在项目甚至文件中,PyCharm 提供了一个名为scratches的工具。您可以创建临时文件(与语言相关联,因此具有突出显示的语法、代码完成、可运行等)或临时缓冲区(小块文本)。
这些划痕有很多功能:您可以列出它们(最多五个)、关闭和删除它们、将它们与一种语言相关联以及重新组织它们。划痕保存在项目的特殊区域中。
当您第一次安装 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 仿真、reStucturedText 等。PyCharm 是如何做到这一点的?如上所述,它与其他基于 IntelliJ 的 IDE 兄弟共享 JetBrains 插件。
其他工具,例如 Sublime Text 和 Visual Studio(通过插件),提供了滚动浏览大型文档的可视化模式。这样,正常的滚动条将替换为文档的图形缩略图以及您在其中的当前滚动位置。
PyCharm 用户还可以使用CodeGlance JetBrains 插件来获得此功能,该插件是为符合所选主题而编写的。
YouTube 上的“入门”系列截屏视频
PyCharm主页、博客和Twitter 帐户。
在社区论坛或StackOverflow 主题中提问。