.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
使用说明
- 把生成内容保存为
.editorconfig,放在仓库根目录(或任何想生效的目录)。 - .editorconfig 不是拿来直接运行的:需配合编辑器插件,在保存文件时自动套用缩进、字符集与行尾。
- 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类型定义