EditorConfig

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

比如我们要控制一个多人维护的项目缩进统一用2个空格。那么每个人的IDE都是不同的,一种方法是几个人约定好各自配置自己的IDE,但是如果每个人又维护着多个项目,几个项目间就会相互影响。所以更好的办法是由项目本身来控制代码风格。也就是使用EditorConfig来控制。

当用IDE打开一个文件时,EditorConfig插件会在打开文件的目录和其每一级父节点查找.editorconfig文件,直到找到一个配置了root = true的配置文件

配置文件的优先级高于编辑器的设置

【通配符】

EditorConfig文件使用INI格式。斜杠(/)作为路径分隔符,#或者;作为注释。路径支持通配符:

*                匹配除/之外的任意字符串
**               匹配任意字符串
?                匹配任意单个字符
[name]           匹配name中的任意一个单一字符
[!name]          匹配不存在name中的任意一个单一字符
{s1,s2,s3}       匹配给定的字符串中的任意一个(用逗号分隔) 
{num1..num2}    匹配num1到num2之间的任意一个整数, 这里的num1和num2可以为正整数也可以为负整数

【各个属性】

indent_style    设置缩进风格(tab是硬缩进,space为软缩进)
indent_size     用一个整数定义的列数来设置缩进的宽度,如果indent_style为tab,则此属性默认为  tab_width
tab_width       用一个整数来设置tab缩进的列数。默认是indent_size
end_of_line     设置换行符,值为lf、cr和crlf
charset         设置编码,值为latin1、utf-8、utf-8-bom、utf-16be和utf-16le,不建议使用utf-8-bom
trim_trailing_whitespace  设为true表示会去除换行行首的任意空白字符。
insert_final_newline      设为true表示使文件以一个空白行结尾
root           表示是最顶层的配置文件,发现设为true时,才会停止查找.editorconfig文件  

【.editorconfig常用属性】

  root = true                         # 根目录的配置文件,编辑器会由当前目录向上查找,如果找到 `roor = true` 的文件,则不再查找

  [*]                                 # 匹配所有的文件
  indent_style = space                # 缩进类型:space, tab
  indent_size = 4                     # 缩进数量:1.整数:一般设置 2 或 4; 2.tab
  end_of_line = lf                    # 文件换行符格式(Unix,DOS,Mac):lf(一般用这个),crlf,cr
  charset = utf-8                     # 文件字符编码:latin1,utf-8,utf-16be,utf-16le
  trim_trailing_whitespace = true     # 行末尾是否允许空格:true不允许
  insert_final_newline = true         # 是否在文件的最后插入一个空行:true,false
  curly_bracket_next_line = false     # 大括号不另起一行
  spaces_around_operators = true      # 运算符两遍都有空格
  indent_brace_style = 1tbs           # 条件语句格式是 1tbs

  [*.md]
  [Makefile]
  indent_style = tab

  [*.js]                              # 对所有的 js 文件生效
  quote_type = single                 # 字符串使用单引号

  [lib/**.js]                         # 对lib目录下所有的 js 文件生效
  indent_style = space
  indent_size = 2

  [*.{html,less,css,json}]            # 对所有 html, less, css, json 文件生效
  quote_type = double                 # 字符串使用双引号

  [package.json]                      # 对 package.json 生效
  indent_size = 2                     # 使用2个空格缩进

参考:
EditorConfig官网
editorconfig常用配置

上一篇:IndentationError: unexpected indent


下一篇:2021-06-03