编辑器配置生成器

.editorconfig
结果

位于仓库根目录的 .editorconfig 文件会告知所有现代集成开发环境该项目如何格式化文件,从而逐文件解决制表符与空格的争论。Python 使用 4 个空格;JavaScript 使用 2 个;Makefile 必须使用制表符(强制要求)。该生成器根据你的格式化设置(缩进样式与大小、行尾、字符集、最大行长度、末尾换行符、去除行尾空白)生成 .editorconfig 文件,并始终包含两项常见调整:[*.md] 保留行尾空格以支持 Markdown 换行,[Makefile] 按 make 的要求使用制表符。

如何创建 .editorconfig 文件

  1. 1

    设置全局默认值

    字符集(默认为 utf-8)、行尾标记(LF 与 CRLF)、缩进样式及大小、最大行长度、插入末尾换行符、去除行尾空格。

  2. 2

    查看内置调整

    生成器始终添加带 `trim_trailing_whitespace = false` 的 `[*.md]`(Markdown 需要行尾空格来实现换行)以及带 `indent_style = tab` 的 `[Makefile]`,后者是 make 本身的要求。

  3. 3

    复制文件

    使用复制按钮获取生成的 `.editorconfig` 文件,然后将其放在仓库根目录下。

  4. 4

    日后扩展

    需要按语言设置规则?添加你自己的分区即可,例如带 `indent_size = 4` 的 `[*.py]`。

.editorconfig 的作用

项目根目录(或任意目录)中名为 .editorconfig 的文件用于声明格式规范。支持 EditorConfig 的编辑器(所有主流集成开发环境及大多数现代文本编辑器)在打开文件时都会应用这些规则。

示例输出

使用默认设置(空格、大小 4、LF、utf-8)时,生成器的输出如下:

root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab

主要指令

指令 接受的值 备注
root true / false 在项目根目录处设为 true,查找即在此停止
charset utf-8、utf-8-bom、latin1、utf-16-be、utf-16-le 默认值为 utf-8
end_of_line lf、crlf、cr 跨平台用 lf;仅限 Windows 的仓库用 crlf
indent_style space、tab
indent_size 整数 空格数量(为 tab 时忽略)
tab_width 整数 制表符的显示宽度(默认等于 indent_size)
insert_final_newline true / false 确保文件符合 POSIX 标准
trim_trailing_whitespace true / false 对 Markdown 关闭此功能(行尾空格表示换行)

各语言规范一览

语言/文件 规范
JS、TS、JSON 2 个空格
HTML、CSS、YAML 2 个空格
Python 4 个空格(PEP 8)
PHP 4 个空格(PSR-12)
Ruby 2 个空格
Go 制表符(gofmt 强制)
Rust 4 个空格(rustfmt 强制)
Java 4 个空格
Makefile 制表符(make 自身要求)
Markdown 保留行尾空格(用于 <br>
批处理 / CMD (.bat) crlf 行尾

陷阱:Markdown 的行尾空格

在 Markdown 中,行尾的两个空格表示“在此插入 <br>”。如果你的 .editorconfig 对所有文件都去除行尾空格,这些换行就会消失。请为 [*.md]trim_trailing_whitespace = false 覆盖此设置。

您的集成开发环境是否支持该功能?

原生支持的编辑器包括:VS Code、JetBrains IntelliJ系列、Sublime Text、Vim(通过插件)、Emacs(通过插件)、Atom、Notepad++以及Xcode。若某编辑器默认不支持EditorConfig功能,通常可通过安装插件实现支持。该文件格式亦为机器可读格式,因此代码检查工具和格式化程序均可兼容使用。

常见问题

在项目根目录下(路径为root = true)。您可在子目录中添加额外的.editorconfig文件以覆盖特定路径;系统将沿目录树向上搜索,并在找到首个root = true文件时停止。

不会。EditorConfig 负责所有编辑器中的空白字符和行尾等基础问题;Prettier 和针对特定语言的代码检查工具则负责更深入的样式规则(如引号、分号、末尾逗号)。两者相辅相成。

若仓库中的Windows工具确实需要end_of_line = crlf,请设置该选项。更佳方案是:提交end_of_line = lf,并添加.gitattributes* text=auto,这样Git在提交时会自动统一换行格式,而检出时则保持与操作系统一致。

不会。你的选择仅用于生成文件;我们的服务器不会存储任何数据,你离开页面后也不会保留任何内容。

相关工具

此工具还提供其他语言版本