.editorconfig文件配置说明
什么是EditorConfig?
EditorConfig有助于维护跨多个编辑器和IDE从事同一项目的多个开发人员的一致编码风格。EditorConfig项目包含一个用于定义编码样式的文件格式和一个文本编辑器插件集合,这些文本编辑器插件使编辑器可以读取文件格式并遵循定义的样式。EditorConfig文件易于阅读,并且可以与版本控制系统很好地协同工作。
EditorConfig文件通常为.editorconfig
.editorconfig文件格式
.editorconfig文件的格式类似于INI,有小节标题,配置使用key = value
的方式。
|
|
文件的每一行只可以是下面4种格式
-
空白:仅包含空格字符。
-
注释:以
;
或开头#
。不推荐在一行非空格字符后插入注释,不算做注释,在
key = value
中使用注释还会被当做值的一部分错误示范:
1 2 3 4
# 错误不要这样写 [*] #任意文件 # 错误不要这样写 end_of_line = lf #换行符设置为lf
正确示范:
1 2 3 4
#任意文件 [*] #换行符设置为lf end_of_line = lf
-
节标题:以
[
开头,以]
结束。-
不得在方括号外使用任何非空白字符。
-
可以在方括号之间包含任何字符,空格和tab也可以。
-
正斜杠(
/
)用作路径分隔符。 -
不允许将反斜杠
\\
用作路径分隔符(即使在Windows上也是如此)。
-
-
键/值对:包含一个键和一个值,以=分隔。
-
键:=之前的部分(修剪空白)。
-
值:=之后的部分(修剪空白)。
-
小节文件路径匹配
特殊字符 | 匹配 |
---|---|
* |
除路径分隔符(/ )以外的任何字符串 |
** |
任何字符串 |
? |
除路径分隔符(/ )以外的任何单个字符 |
[seq] |
seq中的任何单个字符 |
[!seq] |
seq中没有的任何单个字符 |
{s1,s2,s3} |
给定的任何字符串(以逗号分隔,可以嵌套) |
{num1..num2} |
num1 和num2 之间的任何整数,其中num1 和num2 可以是正数或负数 |
反斜杠字符(\\
)可用于转义字符,因此不会被解释为特殊字符。
节名称的最大长度为4096个字符。超出此限制的所有部分都将被忽略。
.editorconfig文件搜索规则
编辑器会从当前目录开始搜索,找不到.editorconfig
会继续往上级目录(父目录)继续搜索,如果在序言中遇到
|
|
就表示是最顶层配置文件了,不会再往上搜索。
然后从上到下读取文件,并且找到的最新规则优先。如果多个.editorconfig
文件具有匹配的部分,则最后读取的规则生效
也就是离文件最近的.editorconfig
会生效
支持的配置
广泛支持的配置
键 | 说明 | 可选值 |
---|---|---|
indent_style |
缩进方式 | tab,space |
indent_size |
缩进字符数,当indent_style= space 时需要设置该项,如果indent_size = tab ,则缩进字符数从tab_width 取值,如果tab_width 没有设置,则使用编辑器默认的 |
整数,tab |
tab_width |
设置tab 缩进的列数,当indent_style= space 时需要设置该项,当不设置的情况下,如果indent_size 设置为一个整数,则tab_width =indent_size 的值 |
整数 |
end_of_line |
换行符,***注意:*如果要在不同操作系统之间使用操作系统的换行符,最好不要设置此选项并将该任务留给VCS(例如:Git)!将来,我们可能会为这种情况添加一个native 值(参见#226)。 |
lf,cr,crlf |
charset |
字符集,utf-8-bom 不推荐使用 |
latin1, utf-8 ,utf-16be,utf-16le,utf-8-bom |
trim_trailing_whitespace |
删除行尾空白字符,true 将删除换行符之前的空白字符 |
true,false |
insert_final_newline |
文件结尾是否插入空白行 | true,false |
root |
必须在序言中指定。设置为true 将停止继续往上级目录搜索.editorconfig 文件 |
true,false |
配置不区分大小写。解析后,所有键均小写。键的最大长度为50个字符,值的最大长度为255个字符。超出这些限制的任何键或值都将被忽略。
部分编辑器支持的配置
max_line_length
超过字符长度将强制换行,设置为off
将关闭该选项,使用编辑器默认配置
可选值
- 正整数
off
支持的编辑器
- Emacs
- Vim
- Atom
- ReSharper and Rider
- AppCode, IntelliJ IDEA, PhpStorm, PyCharm, RubyMine, and WebStorm
- Kakoune
移除配置项
将任何配置项设置为unset
,都会移除该配置项
|
|
使用EditorConfig的项目
https://github.com/editorconfig/editorconfig/wiki/Projects-Using-EditorConfig
看几个有名项目的.editorconfig
Spring-boot
|
|
vue
|
|
laravel
|
|
nodejs
|
|