有没有办法将Python IDLE的交互式shell缩进宽度设置为2个空格而不是默认值?

时间:2017-01-27 20:35:29

标签: python shell python-idle

我不是在询问Options > Configure IDLE > Fonts/Tabs > Indentation Width并将其设置为2。这仅在文件中设置缩进宽度,而不是交互式shell的缩进宽度。

我需要更改哪些Python IDLE文件才能在交互式shell中获得2个空格间隔?

我喜欢使用2个空格而不是4个代码进行编码,因此在将外壳转移到文件中时,没有交互式shell也会以相同的间距缩进,从而减慢了我的速度。

2 个答案:

答案 0 :(得分:1)

有解决方案! * 1

解决方案

转到idlelib(/ lib / idlelib /)* 2
打开“ pyshell.py”
转到class PyShell__init__

共有3行

self.usetabs = True
# indentwidth must be 8 when using tabs.  See note in EditorWindow:
self.indentwidth = 8

只需将它们更改为

self.usetabs = False
# indentwidth must be 8 when using tabs.  See note in EditorWindow:
self.indentwidth = 4 # you decide, lot of people prefer 2

P.S。

这将导致外观怪异:

>>> def f(x): # calculate x*abs(x)
    if x > 0: # it doesn't look it, but this is indented once
        return x*x # and this twice
    else:
        return -x*x

但是我认为它比8spaces-tab缩进更好

脚注

* 1我正在Windows 10上使用python 3.8,但这可能在其他地方工作

* 2取决于python的安装位置
第1步:找到python(对我来说是“ C:\ Programs \ Python 3.8”)
步骤2:从那里转到/ lib / idlelib /

答案 1 :(得分:0)

不,不是现在。

Shell目前使用标签缩进,标签在tk中固定为8'空格'。我相信至少部分原因是,尽管>>>提示,后续行仍然在视觉上缩进。

我也不喜欢这样。在将来,我想将提示移动到侧边栏中,以便输入的代码在编辑器中开始向左冲洗,并且可以使用与编辑器中相同的用户设置缩进。