.editorconfig 生成器
指导
.editorconfig 生成器
构建一个有效且符合规范的 .editorconfig 文件,用于您的项目,无需记忆属性名称或交叉检查值。选择您语言的预设,调整全局默认值,切换一些语言特定覆盖,然后将结果直接复制到您的仓库根目录。
EditorConfig 文件在团队使用的每个编辑器和 IDE 中保持缩进样式、行结束符、字符集和尾部空白规则的一致性。拼写错误的属性名称或超出允许范围的值会被静默忽略,因此仅生成支持键值的生成器是避免开发者间无声差异的最安全方式。
如何使用
- 选择一个 快速预设 匹配您主要语言(JavaScript/TypeScript、Python、Go、PHP、Ruby、Web 或混合)。该预设会预先填充以下所有全局默认值。
- 调整 全局默认值 — 缩进样式、缩进大小、制表符宽度、行结束符、字符集、最大行长度、去除尾部空白以及在文件末尾插入换行符。
- 勾选您需要的任何 语言覆盖 选项。每个切换都会附加一个适当作用域的区块,例如
[*.py]或[{Makefile,makefile,GNUmakefile}],并包含合理的语言特定规则。 - 复制生成的文件或将其下载为
.editorconfig并放入您仓库的根目录。VS Code、JetBrains IDEs、Vim、Sublime 以及大多数其他编辑器中的 EditorConfig 插件会自动识别它。
特征
- 语言预设 — JavaScript/TypeScript、Python、Go、PHP、Ruby、Web(HTML/CSS/JS)以及一个涵盖典型多语言仓库的混合配置。
- 每个标准全局属性 -
indent_style,indent_size,tab_width,end_of_line,charset,trim_trailing_whitespace,insert_final_newline,以及可选的max_line_length. - 作用域覆盖 — Markdown、YAML、JSON、JS/TS、CSS、HTML/XML、Python、Go、PHP、Ruby、Makefile(强制使用制表符缩进)以及
.bat/.cmd(强制使用 CRLF)。 - 实时预览 — 文件在每次更改时都会更新,并提供复制到剪贴板和一键下载按钮。
- 仅客户端 — 表单状态始终保留在您的浏览器中;不会上传、记录或存储在服务器端。
- 始终有效 — 每个生成的属性都限制在 EditorConfig 规范所接受的值范围内,因此您的文件不会被静默忽略。
为什么使用 EditorConfig?
如果没有共享配置,一个仓库可能会出现一个文件使用制表符、另一个文件使用四个空格,以及来自 Windows 贡献者的 CRLF 行结束符。EditorConfig 通过在任何 lint 或格式化工具运行之前,让项目根目录下的一个文件表达每个编辑器必须遵循的格式约定,解决了这个问题。
常问问题
-
我应该把 .editorconfig 文件放在哪里?
将其放在您的仓库根目录。EditorConfig 意识的编辑器会从被编辑的文件向上查找,并合并沿途遇到的每个 .editorconfig 文件的设置,因此对于大多数项目来说,根目录的文件就足够了。当需要特定目录规则时,可以使用嵌套的 .editorconfig 文件来覆盖设置。
-
root = true 是做什么的?
文件顶部的 root = true 指令告诉 EditorConfig 插件停止在父目录中搜索额外的 .editorconfig 文件。如果没有它,插件可能会继续向上查找,并合并来自您未打算继承的主目录或父项目文件的设置。
-
indent_size 和 tab_width 是同一个意思吗?
它们相关但不同。indent_size 是缩进层级所代表的列数,以选定的 indent_style 为单位。tab_width 是字面制表符字符的视觉宽度。当它们不同时,EditorConfig 支持如 indent_style = space 且 indent_size = 4 的样式,同时通过 tab_width 将制表符显示为 8 列。
-
为什么 Makefile 必须使用制表符?
GNU make 要求配方行以字面制表符开头。将这些制表符转换为空格会导致 make 报错,提示缺少分隔符。因此,Makefile 的覆盖设置为 indent_style = tab 并省略 indent_size —— 没有其他选项是有效的构建文件。
-
如果我的编辑器不原生支持 EditorConfig 会怎样?
大多数现代编辑器和 IDE 都有原生支持(JetBrains、Visual Studio、GitHub 网站)或原生插件(VS Code、Sublime Text、Vim、Emacs)。没有插件的编辑器会直接忽略该文件,拼写错误或不支持的属性会被静默跳过——错误的规则永远不会导致构建或编辑器错误。
