编辑器配置生成器
位于仓库根目录的 .editorconfig 文件会告知所有现代集成开发环境该项目如何格式化文件,从而逐文件解决制表符与空格的争论。Python 使用 4 个空格;JavaScript 使用 2 个;Makefile 必须使用制表符(强制要求)。该生成器根据你的格式化设置(缩进样式与大小、行尾、字符集、最大行长度、末尾换行符、去除行尾空白)生成 .editorconfig 文件,并始终包含两项常见调整:[*.md] 保留行尾空格以支持 Markdown 换行,[Makefile] 按 make 的要求使用制表符。
如何创建 .editorconfig 文件
-
1
设置全局默认值
字符集(默认为 utf-8)、行尾标记(LF 与 CRLF)、缩进样式及大小、最大行长度、插入末尾换行符、去除行尾空格。
-
2
查看内置调整
生成器始终添加带 `trim_trailing_whitespace = false` 的 `[*.md]`(Markdown 需要行尾空格来实现换行)以及带 `indent_style = tab` 的 `[Makefile]`,后者是 make 本身的要求。
-
3
复制文件
使用复制按钮获取生成的 `.editorconfig` 文件,然后将其放在仓库根目录下。
-
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在提交时会自动统一换行格式,而检出时则保持与操作系统一致。
不会。你的选择仅用于生成文件;我们的服务器不会存储任何数据,你离开页面后也不会保留任何内容。
相关工具
ASCII 表参考
完整 ASCII 表,覆盖 0 到 127;列出每个代码的十进制、十六进制、八进制、二进制值和 HTML 数字字符引用写法,包括 NUL、LF、DEL。
HTML 字符参考
可搜索的 HTML 实体列表,含命名代码与数值代码,并支持一键复制特殊字符和符号。
键盘快捷键参考
搜索 macOS、Windows 和 Linux 上 VS Code、Chrome 以及使用 GNU Readline 的 Bash 的文档默认快捷键。
邮箱验证器
验证邮箱地址:RFC 5322 语法检查、实时 MX 记录查询,并显示本地部分、域名和长度详情。不会发送任何邮件。
电话号码验证器
根据各国号码规划检查结构,并显示地区、类型以及E.164、国际、国内和RFC 3966格式。
变更日志生成器
根据分类条目生成 Keep a Changelog 风格的 Markdown 部分。将条目粘贴到 Added、Changed、Fixed 和 Removed 下,选择 Markdown 或纯文本,然后复制输出。
此工具还提供其他语言版本
- Generador de EditorConfig [ES]
- เครื่องมือสร้าง EditorConfig [TH]
- EditorConfig-generator [NL]
- EditorConfig 생성기 [KO]
- Générateur EditorConfig [FR]
- EditorConfig-generator [SV]
- Generator EditorConfig [ID]
- Gerador de EditorConfig [PT]
- EditorConfig-Generator [DE]
- EditorConfig Oluşturucu [TR]
- Generator EditorConfig [PL]
- EditorConfig Generator [EN]
- EditorConfig ジェネレーター [JA]
- Trình tạo EditorConfig [VI]
- مولد EditorConfig [AR]
- Generatore EditorConfig [IT]
- Генератор EditorConfig [RU]