默认的 .editorconfig 在 Zed 中强制使用 4 个空格缩进
作者: nucklearproject创建于 2026年8月25日更新于 2026年8月28日
标签status:under discussion
说明
哪些步骤将复制问题?
- 使用作曲器创建新的 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}你觉得呢?- 打开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 " 的编辑特别相关.内容来源: yiisoft/yii2