从文本编辑器迁移
最后修改时间:2023 年 7 月 28 日本指南适用于使用 Vim、Emacs 或 Sublime Text 等文本编辑器并需要有关切换到 PyCharm 的信息的 Python 开发人员。它包括对 IDE 概念的简要讨论,然后探讨具体差异。
什么是IDE?
Python 开发人员长期以来一直使用各种工具来编写代码。尽管界限很模糊,但这些工具分为两大阵营:文本编辑器和集成开发环境 (IDE)。文本编辑器,简单来说,专注于单个文件的编辑,提供非常精简的体验。
IDE,顾名思义,具有更广阔的视野。他们希望查看您的整个项目以及所有与编码相关的活动,并将它们统一到一致、强大的 UI 中。虽然这两个部分重叠,但总体范围是主要区别。
因为像 PyCharm 这样的 IDE 会查看项目中、依赖项中以及平台本身中的所有代码,所以它可以为编码活动提供很多帮助。这种分析和帮助体现在许多强大的设施中:
自动完成功能可通过完成输入来加快准确编码的速度
快速修复发现常见错误并提供特定于语言的更正
代码意图建议对常见 Python 模式进行优化和改进
代码重构消除了常用 Python 重构的苦差事
模板自动执行重复任务
代码导航分析所有代码及其使用的代码的结构和语义,以提供在软件中移动的丰富方式
虽然文本编辑器提供了其中一些功能,但 PyCharm 超越了面向字符串的操作,并解决了代码和语言的语义,提供了智能帮助。PyCharm 可以理解 Python,也可以理解您的代码,因此它可以跳转到定义符号的位置或使用类的位置,或者在代码库中重构方法及其用法。事实上,这些功能超出了 Python 的范围:PyCharm 从 IntelliJ 系列的兄弟那里继承了对 Web 开发和许多其他领域的一流 IDE 支持。
除了这些编码辅助工具之外,PyCharm 将相关操作绑定到同一环境中:版本控制、数据库管理、分析、测试运行、远程环境等。这些工具中的每一个都以集成的方式提供:在查看差异时应用更改可以自动触发重新运行测试。
最后,这种力量伴随着以产品为中心的心态:一切都正常。虽然其他工具具有一长串可能的功能,但您需要自己组装和维护聚合。对于喜欢修补的人来说这很好。使用 PyCharm 作为 IDE,这些功能可以开箱即用,并且年复一年地得到专业支持。
PyCharm 界面
由于 PyCharm 等 IDE 的范围如此广泛,因此用户界面 (UI) 比简单的文本编辑器需要更多的方向。例如,这是 PyCharm 中的一个典型项目:
窗口标题包含一组小部件,可快速访问最流行的操作:项目小部件、VCS 小部件和运行小部件。它还允许您打开“Code With Me”、“Search Everywhere ”和“Settings”。
右侧的编辑器,您实际编写代码的地方。它具有可在打开的文件之间轻松导航的选项卡。
当您右键单击界面元素或代码片段时,将打开上下文菜单并显示可用的操作。
导航栏允许您快速导航项目文件夹和文件。
Gutter是编辑器旁边的垂直条纹,显示您拥有的断点,并提供一种便捷的方式来浏览代码层次结构,例如转到定义/声明。它还显示行号和每行 VCS 历史记录。
滚动条,位于编辑器的右侧。PyCharm 通过运行代码检查来持续监控代码质量。右上角的指示器显示整个文件的代码检查的总体状态。
工具窗口是附加在工作区底部和侧面的专用窗口。它们提供对典型任务的访问,例如项目管理、源代码搜索和导航、与版本控制系统集成、运行、测试、调试等。
状态栏指示项目和整个 IDE 的状态,并显示各种警告和信息消息,例如文件编码、行分隔符、检查配置文件等。它还提供对 Python 解释器设置的快速访问。
右侧的编辑器,您实际编写代码的地方。它具有可在打开的文件之间轻松导航的选项卡。
导航栏允许您快速导航项目文件夹和文件。
Gutter是编辑器旁边的垂直条纹,显示您拥有的断点,并提供一种便捷的方式来浏览代码层次结构,例如转到定义/声明。它还显示行号和每行 VCS 历史记录。
滚动条,位于编辑器的右侧。PyCharm 通过运行代码检查来持续监控代码质量。右上角的指示器显示整个文件的代码检查的总体状态。
工具窗口是附加在工作区底部和侧面的专用窗口。它们提供对典型任务的访问,例如项目管理、源代码搜索和导航、与版本控制系统集成、运行、测试、调试等。
状态栏指示项目和整个 IDE 的状态,并显示各种警告和信息消息,例如文件编码、行分隔符、检查配置文件等。它还提供对 Python 解释器设置的快速访问。
Also, in the bottom-left corner of the PyCharm window, in the Status bar, you see the button or. This button toggles the showing of the tool window bars. If you hover over this button, the list of the currently available tool windows shows up.
See the pages User interface and Tool windows to learn more about showing or hiding tool windows.
还是太多了?如果您正在从文本编辑器过渡并想要简洁的外观,PyCharm 有多种解决方案:
窗口和工具栏可以隐藏直到需要时
无干扰模式和其他模式消除了大部分视觉效果,专注于通过键盘快捷键和操作搜索完成交互的代码
事实上,PyCharm 通过以键盘为中心、面向搜索的交互来呈现其大部分操作,从而拥抱了现代、整洁的趋势。不想单击菜单来重新格式化您的代码?不仅有一个击键序列,而且您可以按搜索“重新格式化代码”的操作:CtrlShift0A
项目
如前所述,PyCharm 不仅仅关注文件,还将项目视为完整的软件解决方案。不仅仅是项目附带的软件,还有相关的任务。
该项目不仅仅包含这些工件。在一个项目中,您可能会按一定顺序在选项卡中打开 3 个文件。该信息保存在项目的元数据中,位于项目根文件夹的 .idea 子目录中,因此,下次打开项目时,您将恢复到该配置。这适用于配置之外的情况:PyCharm在编辑时保存并恢复更改,并由本地历史记录支持,可以将代码返回到之前的状态。PyCharm 的 IDE 中有大量内容是项目配置的一部分:Python 设置、运行代码的场景、数据库的连接信息等等。
你的第一个项目
如果您当前使用文本编辑器,进入 PyCharm 的第一步将询问您有关创建项目的信息。您有多种选择和机会。让我们讨论其中的一些。
首先,您可能从空白开始,或者从磁盘上的现有目录开始,或者从尚未签出的远程存储库开始。PyCharm具有可以在所有这些情况下提供帮助的特定功能。例如,在选择项目起点时能够浏览 GitHub 帐户的存储库,这真的很棒。
接下来,您可能希望在项目中使用一个或多个 Python 解释器。PyCharm 支持本地安装的 Python 2 和 3,以及创建或重复使用虚拟环境。它还支持基于 Anaconda 的解释器、远程解释器、Vagrant 和 Docker。您可以在启动 PyCharm 的“新建项目”向导之前设置这些内容,或者在项目创建期间指定(甚至创建)这些内容。同样,您可以在创建项目后改变主意。
借助 PyCharm 专业版,我们可以轻松开始流行类型的项目。例如,创建 Django 项目将生成遵循 Django 最佳实践的目录结构,并添加在特殊工具窗口中启动 Django 服务器的“运行配置”。
创意Vim
Vim 的长期用户在如何使用编辑器方面投入了大量精力。幸运的是,JetBrains 有一个非常强大且得到良好支持的 IntelliJ 插件,称为IdeaVim,它充当“基于 IntelliJ 平台的 IDE 的 Vim 仿真插件”。
使用此插件,您可以在 PyCharm 中进入 Vim 模拟器模式。更多信息请访问上面链接的 GitHub 页面、Twitter 帐户和 PyCharm IdeaVim 截屏视频。虽然有点过时,但这里是一位前vim用户的深入探讨的史诗般的评论。
学习在 PyCharm (IdeaVim) 中使用 Vim 编辑器来学习如何在 PyCharm 中使用IdeaVim插件。
还可以将vim配置为外部工具,如PyCharm:在 Vim、Emacs 或 Sublime Text 中打开当前文件中所述。
Emacs 和 emacsIDEA
Emacs和vim是硬核开发人员中两种流行的文本编辑器。PyCharm 提供了一个与许多 Emacs 键序列相匹配的键盘映射。
虽然 PyCharm 没有与IdeaVim的全部功能相匹配的Emacs插件,但社区有一个名为emacsIDEAs的活跃插件,它提供了来自 Emacs 和 Emacs 扩展(例如 AceJump)的一些有用功能。
定制和扩展
PyCharm 的 IntelliJ 基础非常广泛(许多 IDE 构建在其之上)并且非常成熟,这也带来了另一个好处:PyCharm 非常可定制。例如,它还提供了一个可选的、名为“Darcula”的深色主题,它符合编辑器的现代趋势。除了调整“heme”之外,还可以自定义许多外观选项:字体大小、配色方案、工具栏设置、气球行为等等。
“它看起来如何”只是定制选项的开始。我们讨论了切换到不同的捆绑键盘映射。但是您可以通过多种方式扩展和自定义键盘映射,将不同的击键映射到不同的操作。除此之外,PyCharm 的行为还可以扩展:安装插件、自定义操作“模板”、更改代码意图等等。
多个光标
这是其他工具的开发人员非常推崇的一个强大功能:多个光标。Sublime Text 首创了这一概念,IntelliJ 将其添加到其平台上的所有 IDE 中。使用 PyCharm 的多光标,可以使用多个插入符,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 提供了一个名为scrapes的工具。您可以创建临时文件(与语言关联,因此具有突出显示的语法、代码完成、可运行等)或临时缓冲区(小块文本)。
这些划痕具有许多功能:您可以列出它们(最多五个)、关闭和删除它们、将它们与语言关联以及重新组织它们。划痕保存在项目的一个特殊区域中。
- 内置提示
当您首次安装 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主页、PyCharm 博客和Twitter 帐户。
感谢您的反馈意见!