Pycharm 转换空格并且不会转换回来

Pycharm converts whitespace and won't convert back

我在使用 Pycharm 时遇到问题,当我除了访问文件什么都没做时,git 跟踪的某些文件将显示为已修改。通常修改是将制表符更改为空格,反之亦然,或者从空行添加制表符 to/removed。一旦进行了这种修改,无论我做什么似乎都无法回滚更改。我在任何可以在设置中设置的地方都设置了 "keep indents on empty lines",但是 Pycharm 仍然会删除一些空行上的缩进,即使我重新添加它们或恢复对文档的本地更改,只要我离开文件,它将再次显示为已修改,并且选项卡再次被删除......我认为这是我在不知不觉中做的事情,或者是我设置的设置而不是 [=16 中的错误=],但这让我发疯!有解决此问题的想法吗?

您可能还需要检查两个设置:

  1. 首选项 > 编辑器 > 常规 > 其他 > 保存时去除尾随空格

  2. 首选项 > 编辑器 > 代码风格 > Python > 制表符和空格 > 使用制表符

要防止 PyCharm 删除空格,请执行以下操作:

在 editor.xml 中将 INDENT_TO_CARET_ON_PASTE 更改为 false 如果它存在,那对我有用 ...

<application>
  <component name="CodeInsightSettings">
    <option name="REFORMAT_ON_PASTE" value="1" />
    <option name="INDENT_TO_CARET_ON_PASTE" value="false" />
  </component>
  <component name="EditorSettings">
    <option name="IS_VIRTUAL_SPACE" value="true" />
    <option name="STRIP_TRAILING_SPACES" value="None" />
  </component>
</application>

已修复:PyCharm 破坏了垂直对齐的可读性,我花了很多时间来实现它,这让我发疯,压缩代码效率低下。 v2020.2.5

要找到该文件:https://www.jetbrains.com/help/idea/tuning-the-ide.html#config-directory

或重命名文件并重新启动。在更改设置时,将仅使用所做的新更改重新创建它。 (请注意,我的设置文件可能来自很久以前的更早版本,现在已升级。)

gui 中的复选框在哪里? 文件 > 设置 ...? ... INDENT_TO_CARET_ON_PASTE