Skip to content

editorConfig 跨多个编辑器和IDE一致代码风格

EditorConfig 规范缩进风格,缩进大小,tab长度以及字符集等,解决不同IDE的编码范设置。有助于维护跨多个编辑器和IDE从事同一项目的多个开发人员的一致编码风格

介绍

EditorConfig项目由一种用于定义编码样式的文件格式和一组文本编辑器插件组成,这些文本编辑器插件使编辑器可以读取文件格式并遵循定义的样式,EditorConfig 文件易于阅读,并且可以与版本控制系统很好地协同工作。

通俗地讲,就是由于开发人员的习惯不一样,所用的开发编辑器可能不同,在不同的编辑器之间保持代码格式一致的风格。

EditorConfig 插件会去查找当前编辑文件的所在文件夹或其上级文件夹中是否有 .editorconfig 文件。

如果有,则编辑器的行为会与 .editorconfig 文件中定义的一致,并且其优先级高于编辑器自身的设置。

虽然它提供的格式化的配置参数很少,就 3 个,缩进风格、是否在文件末尾插入新行和是否删除一行中前后空格。

但是它还是非常有必要存在的,理由有 3 个:

  • 能够在不同的编辑器和 IDE 中保持一致的代码风格;
  • 配合插件打开文件即自动格式化,非常方便
  • 支持格式化的文件类型很多;

如果需要让以上的配置生效,还得在 VSCode 里安装 EditorConfig for VS Code 这个插件配合使用。

重点来了

可以看到 EditorConfig 和 Prettier 会存在一些重复的配置,比如都提供了对缩进的配置参数,所以在实际使用的时候需要避免它们,或者把他们的参数设置为一致。

安装

bash
npm install -D editorconfig

对于vscode,需要安装扩展:EditorConfig for VS Code,然后项目根目录添加文件 .editorconfig,编写以下配置,更多配置参考 官网-editorconfig.org:

text
# EditorConfig is awesome: https://EditorConfig.org

# top-most EditorConfig file
root = true

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

# Matches multiple files with brace expansion notation
# Set default charset
[*.{js}]
charset = utf-8
indent_style = space
indent_size = 2

# Tab indentation (no size specified)
# 可以是tab 或 space
# Indentation override for all JS under lib directory
[lib/**.js]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true

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

[*.md]
insert_final_newline = false
trim_trailing_whitespace = false

常用配置

text
# Editor configuration, see http://editorconfig.org

# 表示最顶层的 EditorConfig 配置文件
root = true

[*] # 表示所有文件适用
charset = utf-8 # 设置文件字符集为 utf-8
indent_style = space # 缩进风格(tab | space)
indent_size = 2 # 缩进大小
end_of_line = lf # 控制换行类型(lf | cr | crlf)
trim_trailing_whitespace = true # 去除行首的任意空白字符
insert_final_newline = true # 始终在文件末尾插入一个新行

[*.md] # 表示仅 md 文件适用以下规则
trim_trailing_whitespace = false
insert_final_newline = false

Contributors

作者:Long Mo
字数统计:751 字
阅读时长:2 分钟
Long Mo
文章作者:Long Mo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Longmo Docs