geekdoc-python-zh/docs/pythoncentral/best-text-editors-for-pytho...

10 KiB
Raw Permalink Blame History

Python 开发的最佳文本编辑器

原文:https://www.pythoncentral.io/best-text-editors-for-python-development/

Python 是一种如此流行的语言,以至于大多数“程序员的文本编辑器”至少有基本的支持,包括语法高亮。但是有几个编辑得到了特别好的支持。我测试了以下编辑器,按字母顺序排列,因为大多数都是不错的选择:

Emacs

Emacs 并不是一个真正的文本编辑器;它是一个有近 40 年历史的文本编辑器家族,从 TECO·EMACS 开始,这是一套由理查德·斯托尔曼使用 TECO 编辑器/编程语言实现的文本编辑宏,今天继续用 GNU Emacs 开发,也是由斯托曼创建的。还有其他的 Emacsen包括 Gosling Emacs 和最著名的 XEmacs但是它们大部分都被 GNU Emacs 取代了。它在 Windows 上运行。Mac OS X、Linux、BSD、俳句、Minix、Android——或多或少无处不在。

Emacs 的名声在于它的可扩展性它允许用户为几乎所有东西创建编辑模式。Emacs 拥有每一种主要编程语言和大多数次要语言的模式它可以作为新闻阅读器、电子邮件客户端、网络浏览器、终端模拟器、图像浏览器和博客客户端它有一个包管理器圣经学习工具一个网络服务器——你开始明白这一点了。Emacs 对于文本编辑器来说是巨大的,但是它被称为操作系统是有原因的。

Emacs 扩展器并没有忽视 Pythonpython-mode包含在基础发行版中,允许用语法高亮显示编辑 Python 代码;自动缩进;对关键字、模块、类等的描述;片段插入;一个交互式 Python REPL在一个分割窗口中能够进行部分重新编译代码折叠还有更多。通过使用包管理器添加的 anything-ipython强大的语法补全很容易实现包括您导入的任何模块。还有几个用于集成单元测试、virtualenv、pylint、实时错误指示等的包。有了 pymacs包,你甚至可以用 Python 来扩展 Emacs 本身,尽管如果你认为你的扩展可能对其他人有用,我不推荐你这么做。

Emacs 的缺点是它疯狂的学习曲线。它的文本模式不同于你所习惯的任何东西,它的键盘快捷键完全不像今天的事实上的标准,它的外观和感觉完全是 1985 年的。然而,它有一个内置的教程——仔细阅读开始屏幕,看看如何打开它——一旦你学会了使用它,还有更多的文档可以随时访问。一旦你学会了使用它,你就可以用它来做 任何事情

简而言之要想有效Emacs 必须是一种生活方式——但如果你坚持下去,这是一种很好的生活。这篇文章是用 Emacs 写的;我完成的所有东西都是用 Emacs 写的。

Geany

Geany 是一个跨平台的程序员文本编辑器,它提供了 IDE 最基本的功能。它有 Python 语法高亮;粗略的自动缩进,尽管在returnbreak语句后没有自动取消缩进;合理的代码导航;代码折叠;堆栈跟踪分析以定位错误;并且,通过一个额外的插件,一些不错的片段——就这些了。

Geany 做它擅长的事情,但是它做不好的事情,它根本不做。它的主要优点是它满足了一个严肃的 Python 程序员的编辑器的最低要求,同时有一个平缓的学习曲线。如果你没有附属的编辑器,也不想花时间学习 Emacs 或 VimGeany 是个不错的选择。

Komodo Edit

Komodo Edit 是一个编辑器/轻量级 IDE由 ActiveState 的 Komodo IDE 的免费子集组成。优点:

  • 自动缩进效果很好
  • 项目和代码导航是有效的
  • 代码折叠工作良好
  • 自动完成在项目中运行良好
  • 片段非常出色,处理得当

然而,也有一些严重的缺点:

  • 自动完成不适用于非标准模块
  • 没有 Python 控制台
  • 没有调试,甚至没有运行脚本的内置支持
  • 项目处理效率低下且不透明

可用的功能与类似 IDE 的接口开销不相称。

记事本++

Notepad++基本上是一个不错的文本编辑器,但至少对于 Python 来说,它几乎不是程序员的编辑器。它有可接受的语法突出显示,但这是它所能提供的全部。它有基于当前文件的单词级和函数级自动补全,这几乎没有帮助;名义上的自动缩进对 Python 来说根本不起作用;坦白说,仅此而已。它唯一的建议是,它很容易学习,比同名的更好。

除非你因为某种原因和 Notepad++绑在一起,否则 Geany 或者这里推荐的其他编辑器可能是更好的选择。

赛特

SciTE 最初是一个用于 Scintilla 源代码编辑组件的演示应用程序,但是它失去了控制,变成了一个可以用 Lua 编写脚本的真正的文本编辑器。尽管它历史悠久,但它实际上相当不错,并且完成了上面 Geany 所做的大部分文本编辑工作;它缺少的是项目和文件导航功能。如果对你有用的话,它可以使用令牌文件进行粗略的自动补全;对我来说不是。

SciTE 有两个优点:轻便快捷,简单易学。像 Geany 一样,它是严肃的 Python 程序员的最小编辑器,如果这就是你想要的,它可能是一个不错的选择。

SPE (Stani 的 Python 编辑器)

SPE 介于专用 Python 文本编辑器和 Python IDE 之间,看起来很有前途,但最终无法提供令人满意的编辑体验。基本编辑器足够有效,可以立即使用,它提供了许多好的工具,包括集成良好的 Python 控制台、有效的搜索面板和文件浏览器。

SPE 的网站承诺了语法突出显示、自动完成、自动缩进、语法检查、wxPython GUI 设计器和集成调试器,但有些功能比其他功能更成功。我测试了最新的稳定版本 0.8.4.h虽然语法突出显示、自动缩进、语法检查和 GUI 设计器的功能都可以接受,但自动完成功能却非常糟糕;除了标准库中最常见的部分之外,建议似乎只是从文件中每个标记的列表中提取出来的。集成调试器完全无法工作;每次我试图调用编辑器时,它都会崩溃。

虽然 SPE 看起来是 Python 编辑器或 proto-IDE 的良好开端,但上一个稳定版本是在 2008 年,所以它最初的承诺实现的可能性越来越小。

崇高的文字

Sublime Text 是一个非常好的程序员编辑器,它的优点是吸引人——就像 Mac 级别的漂亮。它有一系列强大的功能,包括多个光标(允许在多个地方同时进行相同的编辑),一个灵活的“转到任何地方”界面,一个命令面板,允许基于键盘轻松访问 Sublime Text 的所有功能,分屏编辑,无干扰模式,以及两种定制:一种相对简单的使用 JSON一种更高级的使用 Python 的插件 API。

这些能力都很吸引人,几乎足够自己推荐编辑器了。然而,也有一些缺陷。自动缩进是存在的,但是除了在每个冒号后添加一级缩进之外,它不能处理太多。自动补全可以通过 SublimeCodeIntel 或 SublimeRope 插件来实现,但是这两种插件都不太先进。最棒的是,由于编辑器是如此的可扩展,如果你愿意,你可以修复这些问题。

我不能完全推荐 Sublime Text因为在我的测试中插件的性能很差但编辑器非常优秀如果你不是自动完成的经常用户你可以考虑一下。如果我没有其他爱好我可以把它作为 Python 的主要编辑器。

Vim

Vi 是反 Emacs 的,也是一个优秀的文本编辑器。它创建于 1976 年,从软件的角度来说已经很老了,几乎和 Emacs 一样老了。它轻便、快速,并且几乎总是默认安装在 Linux 和其他 Unixes 中。vim——vi 改进版——是当今最常见的 VI 实现尽管还有其他实现。Vim 或 elvis 是另一个克隆版本,可用于 Windows、Mac OS X、BSDs、Minix、Haiku 和大多数其他操作系统。Vim 有扩展,允许它编辑几乎任何编程语言,无论多么晦涩难懂。

Vim 内置了语法高亮显示、代码折叠和自动缩进,通过在每个源文件中添加一些 modeline 注释或对其设置文件.vimrc进行一些添加,它可以确保您不会混淆空格和制表符。通过rope-vimpython-modejedi-vim,它可以自动完成,包括非系统模块,并且有许多模块可以让它用上面为 Emacs 列出的 Python 代码做几乎任何事情。Vim 还可以使用内置的脚本语言 VimScript 进行扩展,尽管通常 Vim 用户不会使用 Emacs 丰富的扩展特性。(我不是 vim 专家,但约翰·安德松是;关于为 Python 设置 vi 的高级技巧,请参阅他的文章 将 Vim 变成现代 Python IDE

Vim 和 Emacs 一样,有一个学习曲线——可能比 Emacs 更陡峭因为它是一个模态编辑器其中不同类别的操作如导航和编辑在不同的时间处于活动状态。Vim 内置了优秀的帮助,输入:help即可访问;它包括参考指南和教程。

Vim确切地说是另一种文本编辑器的生活方式。大多数忠实的 vim 用户使用 vim 进行几乎所有的编辑工作。

编辑:总结

Python 有很多不错的编辑器,但是有几个很突出:有生活方式编辑器Emacs 和 Vim这两个都很强大但是学习曲线很糟糕。有 SciTE 和 Geany像许多类似的编辑器一样对于那些想在编辑器中不投入太多精力就能进入 Python 编程的人来说,它们是很好的基本选择。最后,还有 Sublime Text虽然有缺陷但它有许多独特的功能看起来将成为这一代人的 Emacs 和 Vim 对前一代人的贡献:他们自己的编辑器。

接下来,我们将讨论ide:Python 开发的最佳 ide