.editorconfig 生成器

可视化配置 root 声明、缩进风格、字符集与行尾,支持分节覆盖,一键生成可直接提交的 .editorconfig

在线 .editorconfig 生成工具:勾选 root 声明、选择字符集与行尾(lf/crlf/cr)、配置缩进方式与缩进宽度,再为 Markdown、YAML、Makefile 等特殊文件添加分节覆盖规则, 实时预览并一键复制或下载 .editorconfig 文件。内置前端 Web、Python、Go、Ruby、Java/C# 等常用缩进预设,帮助团队统一缩进风格、 消除「空格还是 Tab」「lf 还是 crlf」这类无休止的争论。全部生成在浏览器本地完成,不上传任何数据。

配置选项

通用规则([*] 所有文件)


缩进规则


分节规则(覆盖通用区)

[]

大括号 {a,b} 表示多模式匹配:任一后缀命中即应用本节规则

[]

每个分节只输出与通用区不同的键(覆盖相同值时自动省略);匹配名为空的节不会出现在结果里。顺序:越靠下的分节优先级越高,可覆盖上面的分节。

生成的 .editorconfig

17 行 · 270 字符 · 实时更新
# EditorConfig 配置文件,规范详见 https://editorconfig.org
root = true

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

[*.{md,yml,yaml}]
# (当前设置与通用区一致,此节没有覆盖项)

[Makefile]
indent_style = tab

使用说明

  1. 把生成内容保存为 .editorconfig,放在仓库根目录(或任何想生效的目录)。
  2. .editorconfig 不是拿来直接运行的:需配合编辑器插件,在保存文件时自动套用缩进、字符集与行尾。
  3. VSCode 需安装 EditorConfig 扩展才生效;JetBrains 全家桶(IDEA / WebStorm / PyCharm)原生支持。

#.editorconfig 是什么?

.editorconfig 是一份「编辑器层」的代码风格约定:一个纯文本 INI 格式文件,加上各编辑器的 EditorConfig 插件, 就能让同一个仓库里的所有人在任何编辑器中保持一致的缩进字符、缩进宽度、字符集与行尾。它只管最基础的三件事—— 缩进(空格还是 Tab、每级几格)、字符集(utf-8 等)、行尾(lf/crlf/cr),外加最终空行与行尾空白两类清理; 引号单双、分号、换行宽、import 排序、代码质量等规则不在它的管辖范围内。

与 Prettier、ESLint 的分工

三者常被混为一谈,其实分工清晰:

  • EditorConfig:最底层,管「文件的物理形态」——缩进字符、字符集、行尾,任何语言、任何编辑器通用,保存前就生效。
  • Prettier:管「排版后的代码长相」——引号、分号、折行宽度、逗号风格,按语言解析后重新输出代码。
  • ESLint:管「写法对不对」——代码质量与部分风格规则,可自动修复,能约束逻辑层面的约定。

通常的做法是三者并存:EditorConfig 作为全仓库公共底线,Prettier 负责格式化,ESLint 负责质量检查, 并让 Prettier 的 useTabs / tabWidth 选项与 .editorconfig 保持一致,避免互相打架。

放哪里?生效范围怎么算?

.editorconfig 放在哪个目录,就对哪个目录及其全部子目录生效。编辑器打开文件时,从文件所在目录逐级向上查找 .editorconfig, 离文件越近的设置优先级越高,下层可覆盖上层。放仓库根目录是标准做法:团队成员 clone 后无需任何额外配置即可共享同一套规则。 根目录文件里的 root = true 声明告诉插件「到此为止,别再向上查找」, 避免个人 home 目录里的全局配置混入团队仓库。子项目、monorepo 的子包也可以放自己的 .editorconfig 单独收窄规则。

常见分节写法

[*]                          # 所有文件
indent_style = space
indent_size = 2

[*.{js,ts,vue}]              # 大括号匹配多种后缀
max_line_length = 100

[**.py]                      # 任意目录层级下的 .py
indent_size = 4

[src/**]                     # src 目录下的所有文件
charset = utf-8

[Makefile]                   # 精确文件名,必须用 Tab
indent_style = tab

* 匹配除路径分隔符外的任意字符串,** 可跨目录层级, {a,b} 表示多模式任选,\* 转义后只匹配字面星号。 写在后面的分节优先级更高,可覆盖前面的同名设置。

为什么 Makefile 必须用 Tab 缩进?

Makefile 的语法硬性规定:规则下面的命令行必须以一个真实的 Tab 字符(\t)开头,这是 make 解析语法的依据而不是风格偏好—— 如果编辑器把 Tab 自动替换成空格,make 会直接报「missing separator」错误。所以 Makefile 在 .editorconfig 里必须单独分节 写 indent_style = tab,显式覆盖通用区的空格缩进。同理,YAML 对缩进字符敏感(禁止 Tab)、 Markdown 渲染时 Tab 宽度不定,这类文件也建议单独分节处理。

#常见问题 (FAQ)

editorconfig 是什么?和 Prettier、ESLint 有什么区别?

EditorConfig 是编辑器层的代码风格约定,只管最基础的三件事:缩进(空格/Tab 与宽度)、字符集、行尾,外加最终空行与行尾空白清理。它不管引号、分号、折行这些排版细节(Prettier 的领域),也不管代码质量规则(ESLint 的领域)。三者可以并存:EditorConfig 作全仓库公共底线,Prettier 负责格式化,ESLint 负责质量检查。

.editorconfig 文件放在哪里?生效范围怎么算?

放在哪个目录就对哪个目录及全部子目录生效。编辑器打开文件时会从文件所在目录逐级向上查找,越靠近文件的设置优先级越高,下层可覆盖上层。标准做法是放在仓库根目录并写上 root = true,阻止插件继续向上查找,避免个人全局配置混入团队仓库。

VSCode 需要装 EditorConfig 插件吗?

需要。VSCode 必须安装「EditorConfig for VS Code」扩展才会读取 .editorconfig;JetBrains 全家桶(IDEA、WebStorm、PyCharm 等)原生支持,GitHub 代码浏览界面也会按它显示文件缩进,Vim、Emacs、Sublime Text 需要各自安装对应插件。

常见分节写法有哪些?

[*] 匹配所有文件;[*.{js,ts,vue}] 用大括号匹配多种后缀;[**.py] 匹配任意目录层级下的 .py;[src/**] 限定某个目录;[Makefile] 精确匹配单个文件名。写在后面的分节优先级更高,可以覆盖前面的设置;只需要在分节里写与通用区不同的键。

为什么 Makefile 必须用 Tab 缩进?

Makefile 语法硬性要求:规则下的命令行必须以真实 Tab 字符开头,这是 make 解析语法的依据而非风格偏好。Tab 被替换成空格后 make 会报「missing separator」错误。因此 Makefile 要在 .editorconfig 里单独分节写 indent_style = tab,覆盖通用区的空格缩进。

相关工具推荐

Spine动画编辑器

专业的Spine动画预览和编辑工具,支持多引擎导出

热门 新品 本地

SQL查询优化器

分析SQL查询并提供优化建议

热门 新品 本地

JVM启动参数配置

可视化配置Java虚拟机启动参数,支持内存、GC、性能等选项

热门 新品 本地

代码片段转换

不同编程语言间代码片段转换(如Python↔JavaScript)

热门 新品 本地

IP地址查询

查询IP地址的地理位置、运营商、ASN等信息,支持IPv4和IPv6

热门 新品 本地

JSON转TypeScript接口

根据JSON数据自动生成TypeScript类型定义

热门 新品 本地

相关教程