PHPStorm 重新格式化 - 如何禁用删除空行中的空格?

Posted

技术标签:

【中文标题】PHPStorm 重新格式化 - 如何禁用删除空行中的空格?【英文标题】:PHPStorm reformat - how do I disable removing spaces in empty lines? 【发布时间】:2014-07-23 16:34:28 【问题描述】:

当重新格式化文件时,phpstorm 将空行替换为空白行,例如^[tab][tab]$^$。如何禁用此功能?

【问题讨论】:

为什么要关心空行中的空格? 因为有些开发者使用 IDE 会在空行中放置 tab,所以每次重新格式化都会删除这些,并在 git diffs 中添加很多无用的信息。 diff 可以选择忽略空白差异。 git diff 不允许您使用该选项吗? 我猜Github似乎没有那个选项?实际上,我不在乎空行中是否有空格,所以我希望 phpstorm 采取相应的行动。 因为,我们不能总是在基于工具的 git add/commit 上指定“忽略空格”,突然提交审查的 1-3 行更正表明一半文件已更改! 【参考方案1】:

你不能——http://youtrack.jetbrains.com/issue/IDEA-73161

我认为禁用剥离空白字符完全可以完成这项工作:

通过更改 Settings | Editor | Strip trailing spaces on Save(现在有 Modified Lines 选项)

但显然它只适用于“保存”。

相关门票:

http://youtrack.jetbrains.com/issue/IDEA-99173

现在您也可以重新格式化代码

    Settings/Preferences Editor | Code Style $language$ | Tabs and Indents | Keep indents on empty lines 复选框

(此选项是在提供此答案后引入的:https://youtrack.jetbrains.com/issue/IDEA-103941#comment=27-807213)

【讨论】:

我已将“保存时去除尾随空格”设置为“无”。但是重新格式化仍然像我最初描述的那样起作用。这是预期的吗? “是”和“否”同时出现。 “是”是因为现在无法避免(无论出于何种原因——参见上面提到的票 IDEA-73161)和“否”,因为我希望上述选项即使在重新格式化期间也能正常工作。我会稍微改变一下我的答案。 是否可以在.blade.php 文件上禁用条带空间,但对所有其他文件(包括 index.php 等)启用它? @Adam 使用.editorconfig 文件(它具有此类内容的标准选项)并在 IDE 设置中启用了 EditorConfig 支持——是的,这应该可以正常工作(即使在每个文件级别,如果配置正确) .注意:启用后,来自.editorconfig 的设置覆盖 IDE 设置。【参考方案2】:

我在相反的主题中找到了解决方案:Configure editor to remove whitespaces in blank lines。

它可以在 WebStorm 中工作,并且应该也可以在 PHPStorm 中工作:

Settings | Editor | Code Style | PHP | Tabs and Indents (tab) | Keep Indents on Empty Lines" (check box)

【讨论】:

以上是关于PHPStorm 重新格式化 - 如何禁用删除空行中的空格?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 DataGridView 控件底部删除空行?

如何使用所有声明的规则强制在 PhpStorm 中重新格式化整个文件?

在 VScode 中格式化 .vue 文件时如何保留空行?

怎样快速删除Word中的空行

PhpStorm 在重新格式化时忽略生成的代码

如何禁用phpstorm9更新提示