我有一个不可见的expected an indented block
错误,这可能是由我使用制表符而不是空格引起的。
当我打开“find/replace”窗口并尝试在find
字段IDLE中输入选项卡时,毫不奇怪地只是跳转到replace
字段。
我该怎么做?
最终更新:
谢谢你的回答,非常感谢。我的问题是python希望函数注释也缩进,即
def imdheladumb():
"""
I'm dum as hel
"""
不起作用,必须
def imdheladumb():
"""
I'm dum as hel
"""
Tags:
应该有一个应用程序。;)
如果你喜欢过度杀戮,那么通过一个正则表达式运行你的代码,比如:
IDLE不允许搜索文本制表符。您可以将一个粘贴到搜索框中(如will所建议的),但它永远不会匹配任何内容。
但是,它确实允许您执行正则表达式搜索,正则表达式
\t
将匹配一个文本选项卡。所以,打开Regular expression
复选框,将\t
放入Find:
框中,并将4或8个空格(视情况而定)放入Replace:
框中。但是,正如将要建议的那样,最好使用IDLE的特性,而不是尝试手动操作:选择带有标签(或不一致)缩进的代码块,转到
Format
菜单,然后选择Untabify Region
。(或者只点击control-6。)如果插入的选项卡带有使用4空间选项卡的编辑器,则可能需要首先使用New Indent Width
,然后将其更改为4,然后Untabify Region
。IDLE没有任何代码来猜测编写不一致代码时的标签大小。据我所知,唯一的编辑是emacs。如果您只是在emacs中打开文件,它会尝试猜测您的设置,然后您可以选择整个缓冲区和
untabify-region
。如果它猜对了,你就是黄金;如果它猜错了,不要保存缓冲区,因为现在它将更难修复。(如果您是世界上三个知道如何阅读emacs lisp但不喜欢emacs的人之一,您可以查看python-mode.el
源代码并了解它的魔力。)一种通用的方法是从文档中复制一个制表符(或者在任意文本编辑器中复制一个),然后将其放入字段中。
您可以尝试将
\t
放入其中,但这仅在某些编辑器中有效。大多数ide都有一个功能,可以用预定义的空格数自动替换制表符。我建议打开。。。
编辑:如果出于任何原因在其他地方使用制表符,那么执行标准的查找和替换可能会带来危险。
如果你看here,有一个叫做“tabify region”的选项。你可能更感兴趣。
相关问题 更多 >
编程相关推荐