参考文档
editorconfig官方文档
github/editorconfig/wiki文档
一 概述
editorConfig不是什么软件,而是一个名称为.editorconfig的自定义文件
。该文件用来定义项目的编码规范,编辑器的行为会与.editorconfig 文件中定义的一致,并且其优先级比编辑器自身的设置要高
,这在多人合作开发项目时十分有用而且必要
1. 编辑器是否支持editorConfig
- 有些编辑器默认支持editorConfig,如webstorm;
- 而有些编辑器则需要安装editorConfig插件,如ATOM、Sublime、VS Code等
2. 匹配和优先级
当打开一个文件时,editorConfig插件
会在打开文件的目录和其每一级父目录查找.editorconfig文件
,直到有一个配置文件root=true
editorConfig的配置文件是从上往下读取的并且最近的editorConfig配置文件会被最先读取. 匹配EditorConfig配置文件中的配置项会按照读取顺序被应用, 所以最近的配置文件中的配置项拥有优先权
如果.editorconfig文件没有进行某些配置,则使用编辑器默认的设置
二 通配符
* 匹配除/之外的任意字符串
** 匹配任意字符串
? 匹配任意单个字符
[name] 匹配name中的任意一个单一字符
[!name] 匹配不存在name中的任意一个单一字符
{s1,s2,s3} 匹配给定的字符串中的任意一个(用逗号分隔)
{num1..num2} 匹配num1到num2之间的任意一个整数, 这里的num1和num2可以为正整数也可以为负整数
三 属性
所有的属性和值都是忽略大小写的. 解析时它们都是小写的
1.root 表示是最顶层的配置文件,发现设为true时,才会停止查找.editorconfig文件
root = true
2.charset:文件编码。可选值
charset = latin1
utf-8 常用
utf-8-bom 不建议使用
utf-16be
utf-16le
3.indent_style: 缩进类型。可选值
indent_style = space 软缩进
tab 硬缩进
4.indent_size: 缩进数量。可选值
indent_size = 整数, 一般设置 2 或 4。
tab
5.tab_ 一个制表位字符宽度
正整数, 当indent_size为数字的时候默认用indent_size
6.insert_final_newline:是否在文件的最后插入一个空行。可选值
insert_final_newline = true
false
7.end_of_line:换行符格式。说明见Wiki:换行。可选值
end_of_line = lf 常用
crlf
cr
8.trim_trailing_whitespace:是否删除行尾的空格。可选值
trim_trailing_whitespace = true
false
附上.editorconfig 文件, 供参考
# http://editorconfig.org
root = true
# 对所有文件生效
[*.js]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true