git配置文件—— .editorconfig

时间:2024-03-04 20:57:08

参考文档

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_width: 一个制表位字符宽度

正整数, 当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