【问题标题】:How can I make PyDev autoformat the maximum number of characters per line?如何使 PyDev 自动格式化每行的最大字符数?
【发布时间】:2013-03-18 17:27:30
【问题描述】:

我在 Eclipse 中使用 PyDev 进行 Python 编程。

是否可以让 PyDev 自动格式化我的代码以限制单行的最大字符数?

【问题讨论】:

  • 我不太确定,但我认为自动格式化算法尊重 Preferences>Editors>Text Editors 中设置的 Print margin 值。我会测试它并告诉你
  • 不,这是错误的,PyDev 只对import 语句执行此操作(将其拆分为多行语句以尊重打印边距)

标签: python eclipse formatting pydev


【解决方案1】:

使用标准 PyDev

这个选项似乎只在 Eclipse 的 Java 编辑器中可用。

Java 编辑器允许您为代码格式化程序创建“配置文件”,而 PyDev 的代码格式化程序选项非常有限。

然而,

你可以破解这个。 PythonTidy.py 是一个很棒的脚本,它清理 Python 代码以使其遵循 PEP8 约定,并且可以使用您自己的设置进行调整。

PythonTidy(代码清理和格式化)

获取here (homepage) PythonTidy 的源代码。

您将在文件内部看到,在代码开头和 cmets 之后,定义了许多设置。

其中第一个是COL_LIMIT,其默认值设置为72。现在您可以使用 PythonTidy 以您想要的方式格式化您的代码。

与 PyDev 集成

现在您必须使用 PyDev 的格式来完成这项工作。这个blog post会比我解释得更好,但我还是会总结一下步骤:

  • 在 PyDev 的编辑器 (PyEdit) 和 PythonTidy 之间编写一个 Jython 界面。该博客的作者已经在上述链接或here 中的公共域中编写了一个包装脚本,以防链接变为 404。
  • 将此文件保存在您想要的任何位置,名称为pyedit_pythontidy.py,以及PythonTidy.py 文件。
  • 配置 PyDev 以将此脚本用作其代码格式化程序。您可以在 Preferences > PyDev > Scripting PyDev

    中执行此操作
    • 注意 #1:我真的建议阅读原版 blog post 以更好地理解

    • 注意 #2:包装脚本作者没有实现 代码块格式化,因此这意味着您只能格式化完整文件。这应该不难实现,由您决定。

    • 注意 #3:PyDev 集成部分的所有功劳归bear330

【讨论】:

  • 我按照博客和您的步骤进行操作。要么它不起作用,要么我不知道如何使用它......我应该如何订购整个文件的格式? crtl+shift+F (文件选择)不会改变一点。谢谢
  • 您的 Eclipse 错误日志中有任何有用的信息吗? (另外,选中Scripting PyDev 对话框中与错误日志相关的两个复选框)
  • 根本没有有趣的日志,现在我将在没有真正集成到 Eclipse 的情况下运行 Pythontidy 脚本。还是谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-11
  • 2014-02-09
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多