editorconfig配置文件详解

EditorConfig可以帮助开发者在不同的编辑器和IDE之间定义和维护一致的代码风格。

官方网站: http://editorconfig.org/

Usage

step1: 在项目根目录下创建一个.editorconfig文件

step2: 安装对应编辑器的插件

step3: 填写配置文件

规则如下:

通配符 说明
* 匹配除/之外的任意字符串
** 匹配任意字符串
? 匹配任意单个字符
[name] 匹配name字符
[!name] 匹配非name字符
{s1,s3,s3} 匹配任意给定的字符串(0.11.0起支持)
{num1..num2} 匹配任意在 num1 与 num2 之间的整数

特殊字符可以用\转义,以使其不被认为是通配符。

支持属性:

注:不是所有属性插件都支持,完整版见complete list of properties

  • root: 设置为 “true” ,编辑器根据此属性停止查找。
  • charset: 一般设置为 “utf-8” , 可选值有 latin1, utf-8, utf-8-bom, utf-16be or utf-16le。
  • indent_style:缩进类型 , “space” 或 “tab”
  • indent_size:缩进数量 , 一般 “2” 或 “4”, 可选 “tab”
  • tab_width:设置整数用于指定替代tab的列数。默认值就是indent_size的值,一般无需指定。
  • end_of_line:定义换行符,支持lf、cr和crlf。
  • trim_trailing_whitespace:是否删除行尾的空格, “true” or “false”
  • insert_final_newline:是否在文件的最后插入一个空行,”true” or “false”

Example

以下是一个文件示例,用于设置Python和JavaScript代码格式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# EditorConfig is awesome: http://EditorConfig.org

# top-most EditorConfig file
root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true

# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,py}]
charset = utf-8

# 4 space indentation
[*.py]
indent_style = space
indent_size = 4

# Tab indentation (no size specified)
[Makefile]
indent_style = tab

# Indentation override for all JS under lib directory
[lib/**.js]
indent_style = space
indent_size = 2

# Matches the exact files either package.json or .travis.yml
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2

My Config

1
2
3
4
5
6
7
8
9
root = true

[*]
charset = utf-8s
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

Recommend