【问题标题】:Tab not working properly in Python标签在 Python 中无法正常工作
【发布时间】:2011-01-23 14:26:55
【问题描述】:

我一直在使用 NotePAD++ 来编辑 Python 脚本。 我最近下载了 PyDEV IDE(用于 Eclipse)。 问题是,当我在 NotePad++ 中编写脚本时,我使用“TAB”进行缩进,现在当我用 PyDEV 打开它们时,每次我尝试写一个新行而不是“TABS”时,PyDEV 都会插入空格。 (即使我单击“TAB”键 Eclipse 插入 4 个空格而不是一个选项卡)。 这会引发缩进错误。

有没有办法解决这个问题?

谢谢!

【问题讨论】:

    标签: python eclipse eclipse-plugin pydev


    【解决方案1】:

    是的,请关注http://www.python.org/dev/peps/pep-0008/ 声明:

    缩进

    Use 4 spaces per indentation level.
    

    用空格替换所有制表符,并将 Notepad++ 设置为使用空格而不是制表符。

    将 Eclipse 设置为使用制表符而不是空格将是朝着错误方向迈出的一步。

    【讨论】:

    • 谢谢,我不知道:/你知道是否有办法快速转换它们(或者我需要逐行进行)吗?
    • @Joel 搜索和替换:\t 4 个空格
    • 谢谢,不知道它可以找到 \t 但使用 reg-exp 可以:)
    • 这里有一个关于制表符与空格的广泛讨论:stackoverflow.com/questions/119562/…,我将其总结为“确实没有更好或更坏的方法(但有很多狂热分子)”。所以我想说,如果您已经拥有并喜欢标签,请省去自己的努力并保留它们。
    【解决方案2】:

    标签是有问题的——不同的人可以在他们的编辑器设置中选择不同的宽度,然后你就会出现格式错误(例如 C)或执行问题(Python)。因此,空间更适合获得一致的合理结果。但其中一个问题是,一些编辑器仍然默认使用选项卡。

    在我工作过的公司中,我们的编码指南规定我们应该始终使用空格,而不是制表符。但是默认编辑器设置有时会引起我们的注意。

    在带有 PyDev 的 Eclipse 中,将制表符转换为空格的快速方法是菜单项 Source⇒Convert tabs to space-tabs。

    【讨论】:

    • 不同的人可以在他们的编辑器设置中选择不同的宽度,然后你有错误的格式真的吗?为什么设置每个选项卡显示的空格数会导致格式错误?
    • @Piotr:两个主要原因:(1) 使用制表符对齐尾随 cmets — 不同长度的 cmets 尾随行会因制表符宽度而错位。 (2) 与为空格配置的编辑器/工具混合使用,但选项卡宽度不同,您最终会得到针对各种选项卡设置的线错位。我承认(2)只影响空格和制表符的混合(如在原始问题中),因此如果您可以保证纯制表符,那应该不是问题。
    • @Craig:我同意使用制表符对齐尾随 cmets 是个坏主意。但是,使用制表符进行缩进(即严格仅在行首)是完全不同的故事,在我看来,制表符比空格更有意义。我觉得有些编辑虔诚地坚持在任何地方都使用空格,这很烦人。
    • @Craig 关于您的第一点:(1) 使用制表符对齐尾随 cmets — 不同长度的 cmets 尾随行将根据制表符宽度错位。只有在忽略弹性制表位的情况下,这种推理才是正确的。如果您的编辑器支持弹性制表位,那么在这种情况下,制表符实际上也优于空格。见nickgravgaard.com/elastictabstops
    【解决方案3】:

    撇开制表符与空格的争论。

    要解决此问题,您需要 在 Eclipse 的首选项中选择“切换强制选项卡”以使用选项卡而不是默认空格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多