VS代码Python autopep8不支持2个空格挂起缩进

2024-10-01 13:40:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让autoep8工作,使Python代码正确地缩进2个空格,而不是4个空格。我使用的是带有Python扩展的VS代码,它使用autoep8进行格式化。我发现hereautoep8可以配置为使用2个空格

"python.formatting.autopep8Args": ["--indent-size=2"]

但这对我不起作用。在

我的情况是这样的。当我按enter键时,它正确地以与上一行相同的缩进开始下一行。在左括号后按enter键,它将正确地以两个空格开始新行。但当我粘贴或保存时编辑器.格式粘贴“和”编辑器.formatOnSave“设置为true),恼人的事情发生了:括号内的所有2空格缩进变成了4(其他2空格缩进不受影响)。它为什么要这样做,我怎么能让它到处都是2个空间?在

enter image description here

===编辑====

我发现pylint错误Wrong hanging indentation (remove 2 spaces). [bad-continuation]。因为我的电话线有indent-after-paren=2。我想知道autoep8或其他Python格式化程序是否可以设置此属性?在


Tags: 代码size粘贴格式情况编辑器括号vs
1条回答
网友
1楼 · 发布于 2024-10-01 13:40:29

我还必须在数组中包含这个设置.json,和你的差不多。在

" ignore E121"

根据https://pypi.org/project/autopep8/,此设置确保缩进是4的倍数。如果不强制执行,则使用VSCode中配置的制表符大小。在

E121 - Fix indentation to be a multiple of four.

也就是说,根据pep8,你的缩进仍然是“可接受的”,所以它实际上不会改变为你期望的4个空格。我不得不把我的水平提高一级,然后当它再次运行时,它并没有改变它。在

不幸的是,这实际上只是一个解决办法,它实际上会对其他缩进规则产生负面影响。。。在

在pep8的代码中可以看到,他们将默认的制表符大小硬编码为“python way”(4个空格):

https://github.com/hhatto/autopep8/blob/120537a051d7f3cbbb5c4ede19b9e515156bd3d1/autopep8.py#L104

这看起来像是挂起的缩进不考虑缩进大小选项。。。在

相关问题 更多 >