ChatGPT解决这个技术问题 Extra ChatGPT

pycharm自动将制表符转换为空格

我正在使用pycharm IDE进行python开发,它对于django代码非常有效,因此怀疑将制表符转换为空格是默认行为,但是在python IDE中到处都会出错,因为它无法自动将制表符转换为空格有没有办法实现这个。


C
CrazyCoder

更改代码样式以使用空格而不是制表符:

https://i.stack.imgur.com/g3RS7.png

然后在项目视图中选择要转换的文件夹并使用 Code | 重新格式化代码


这是我的默认设置,但似乎 IDE 中有一些错误无法正常工作,所以我所做的是 Edit>Convert Indent>Spaces
Python 应该有 4 个空格的缩进。
这个答案对我不起作用。不知道为什么它被接受,因为它也不适用于 OP。跟进问题:stackoverflow.com/questions/47102828/…
在我的情况下,我不得不在 Editor -> 下禁用 Editor Config代码风格 ->启用编辑器配置支持,因为我在不知不觉中有一个 ~/.editorconfig 文件覆盖了 PyCharm 的设置。
您可以通过取消选中常规“代码样式”下的“检测并使用现有文件缩进进行编辑”来强制它甚至对现有文件使用空格。之后,在现有文件上键入制表符将立即插入空格而不是制表符。
r
runDOSrun

这只会转换选项卡而不更改任何其他内容:

Edit -> Convert Indents -> To Spaces

嘿,这应该是公认的。它在本地工作。例如,对于需要将制表符作为缩进的 Makefile 很有用
M
Muhammad Lukman Low

对于选择,您还可以使用“到空格”功能转换选择。我通常只是通过 ctrl-shift-A 使用它,然后从那里找到“To Spaces”。


似乎一次不适用于多个文件。单独为每个文件做这件事有点麻烦......
先生,你是生活的滋味
l
lmiguelvargasf

PyCharm 2019.1

如果要更改常规设置:

打开首选项,在 macOS 中⌘;或在 Windows/Linux 中按 Ctrl + Alt + S。

进入 Editor -> Code Style -> Python,如果你想遵循 PEP-8,选择 Tab size: 4, Indent: 4, and Continuation indent: 8 如下图:

https://i.stack.imgur.com/aASNu.png

应用更改,然后单击确定。

如果您只想将更改应用到当前文件

选项 1:您可以在导航栏中选择:编辑 -> 转换缩进 -> 到空格。 (见下图)

https://i.stack.imgur.com/628Fs.jpg

选项 2:您可以通过运行 Find Action 快捷方式来执行“To Spaces”操作:macOS 上的⌘⇧A 或 Windows/Linux 上的 ctrl⇧A。然后键入“To Spaces”,并运行如下图所示的操作。

https://i.stack.imgur.com/O1l6y.png


R
Ravi

ctrl + shift + A => 打开弹出窗口选择选项,选择to空格将所有制表符转换为空格,或选择制表符将所有空格转换为制表符。


这仅适用于缩进,不适用于一般格式
A
Aurel Curea

ctr+alt+shift+L -> 重新格式化整个文件:)


to tabs 无法转换现有的代码块。这是唯一对我有用的解决方案。谢谢!
K
Ken Myers

对我来说,它有一个名为 ~/.editorconfig 的文件覆盖了我的选项卡设置。我删除了它(肯定有一天会再次咬我)但它解决了我的 pycharm 问题


L
Logan Bender

请注意:Pycharm 的 to 空格功能仅适用于行首的缩进制表符,而不适用于一行文本中的间隙制表符。例如,当您尝试格式化等宽文本中的列时。