如何在Intellij Idea中禁用自动将代码中的制表符转换为空格?

11

如何禁用自动将制表符转换为空格以及在打开源文件后删除空行和空格?

换句话说,如果一行包含制表符和空格,则Idea不应更改它们。例如,如果文件包含“-->-->....-->public void setAttribute();”,Idea不应将制表符转换为空格或将空格转换为制表符。我可以禁用所有自动格式化。

5个回答

5
为了重新说明问题,您希望编辑器影响空格缩进。空格应保持为空格,制表符应保持为制表符。
我有一个类似的问题。看起来IntelliJ有这个功能:
设置 > 编辑器 > 代码样式, 缩进检测部分, 检测并使用现有文件缩进进行编辑选项
不幸的是,我不认为我可以让它按照我的期望工作(版本2016.3.6),但它似乎对其他人有效。
这里是关于它的原始jetbrains博客文章

1
非常感谢,您的解决方案对我的情况帮助很大。 - Pasha

4

有一个选项是“保留空行缩进”。

enter image description here


这里对于问题来说更重要的是“使用制表符”- 当未被勾选时,在键入时制表符会自动被替换为空格。 - Honza
这对我在Intellij 2021.3.1版本中起作用。自动缩进添加问题已解决。 - deepaksingh pawar

1
假设使用Java: 设置 > 代码风格 > Java > 制表符和缩进 > 使用制表符。您也可以为其他语言执行相同操作。

1
我的意思是,如果一行中包含制表符和空格,Idea不应该更改它们。例如,如果文件包含“-->-->....-->public void setAttribute();”,Idea不应更改制表符或空格。我可以禁用所有自动格式设置。 - Maksym Kartsev
8
确切地说...问题不是“我该如何配置IDE来使用制表符(而不是空格)作为缩进”。而是“我应该如何停止IntelliJ自动将制表符转换为空格?这真是太烦人了...你最终会得到充满你从未想要的空格更改的提交差异。他们为什么认为这是一个好的默认设置?” - Tom Fennelly
@TomFennelly,我们的代码审查系统显示出数百个只有空格更改的差异,因为我们最近从Eclipse转移到了IntelliJ。太烦人了,我讨厌IntelliJ。 - pacoverflow

0
编辑器 - 代码样式 - Java/JSON/etc - 制表符和缩进 中有两个复选框:
  1. 使用制表符 - 如果未选中,Idea 在输入时用空格替换制表符
  2. 保留空行缩进 - 如果未选中,Idea 会从没有其他内容的行中删除制表符和空格

0
除了注意到的IDE设置外,请检查您的项目中是否存在.editorconfig文件。该文件可能会悄悄地覆盖IDE设置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接