#21076·yii2

默认的 .editorconfig 在 Zed 中强制使用 4 个空格缩进

作者: nucklearproject创建于 2026年8月25日更新于 2026年8月28日
标签status:under discussion

说明

哪些步骤将复制问题?

  1. 使用作曲器创建新的 Yii2 基本应用程序:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 作曲家创建-项目 - 偏好dist yiisoft/yii2-app Basic Basic


2. 在**Zed**中开放新创建的项目。

3. 配置 Zed 以使用2个空格,例如在 ".zed/sets.json " 中:

贾森
{
"tab size": 2, (中文(简体) ).
"难":假,
"自动 缩进":"语法 知"
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
  1. 打开PHP文件并按 " Tab " 键。

尽管 Zed 配置指定了 2 个空格, 但仍使用 4 个空格 插入缩进 。

预期行为

编辑器应该使用所配置的 2- 空格缩进 。

实际行为

PHP 文件使用 4- 空间缩进 。

这可能会特别令人困惑,因为Zed配置看起来是正确的,当没有配置预事时,行为也会发生.

例如,设置:

贾森 "物":无


防止完全格式化,但按下“Tab”仍然插入4个空格。

因为...

Yii2 基本应用程序模板包括“.editorconfig”:

齐尼
root = 真实

[*]
字符集 = utf-8
结束( O)
插入  最终  新行 = 真
缩进( S)
缩进 大小 = 4
三进制  trailing  whitespace = true

[*.js]
缩进 大小 = 2

[*.md] (中文(简体) ).
三进制( T)

[*.php] (中文(简体) ).
ij php space  before short close left parenthesis = 虚构
ij php space after type cast=为正

[*.yaml] (中文(简体) ).
缩进 大小 = 2

[*.yml]
缩进 大小 = 2

[*.xml.dist] (英语).
缩进 大小 = 2

[口号*]
缩进 样式 = 未设置
缩进 大小 = 未设置

重要部分是:

齐尼 [*] 缩进 大小 = 4


没有针对PHP的"缩进 大小",因此PHP继承了4的全局值.

改为:

齐尼
[*]
缩进 大小 = 2

立即修复Zed的缩进行为.

为什么这令人困惑?

Yii2项目还包括了JetBrains特有的"ij php *`"设置,这表明这个文件主要是为了为项目提供编辑器配置.

然而,Zed等编辑也使用`.editorconfig'。 因此,全球:

齐尼 缩进 大小 = 4


可以默默地覆盖用户的预期编辑器缩进.

就我而言,这导致了数小时的故障,因为Zed配置本身是正确的。

可能的解决办法

考虑:

1. 记录Yii2模板有意使用4-空格缩进,以及`.editorconfig'将推翻编辑器特定的缩进设置,或
2. 如果所要的PHP缩进与全局设置不同,则增加一个PHP特定设置,或
3. 重新考虑默认的 " .editorconfig " 是否应规定所有编辑的缩进尺寸。

至少,在Yii2文档中提及这一点将是有益的,这样,为2-空格缩进配置其编辑器的用户就可以快速识别出".editorconfig"作为行为来源.

这对Zed等自动尊重 ".editorconfig " 的编辑特别相关.