• 初衷:VS Code是个很棒的编辑器(or IDE?),但是在自定义代码格式化上面还有很多不足,例如在WebStrom中可以设置不同的语言使用不同的方法来格式化代码,但在vscode中却无法设置,默认在HTML文件中会使用tab来缩进,但在css/scss中却使用两个空格来缩进,以及可能对于py会使用四个空格来缩进,也许这样符合大多数人的编写习惯,但对于有特殊要求的人来说却无法满足。

    EditorConfig

    EditorConfig是一个可以在不同的编辑器或者IDE中保持同一代码风格的插件,例如在一个项目中,成员之间如果使用不同的编辑器来编写代码,有的人喜欢使用tab缩进或者空格,或者有的人喜欢把一个tab设置为2个空格而不是4个,这就会造成你们一起编写的代码很混乱,而EditorConfig这个插件就可以解决这个问题。

    安装

    各大流行IDE都可以在其插件商店搜索并安装这款插件,WebStrom自带,VSCODE的安装步骤如下:

    使用方法

    安装完成之后,你只需要项目的根目录下新建一个.editorconfig文件即可。

    这是一个官方实例:

    # 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

    参数

    来说一下常用参数

    1)使用方括号[]来指定文件

    [*]	# 匹配所有文件
    [*.py]	# 匹配所有python文件
    [lib/**.js]	# 匹配lib文件夹下的所有js文件
    

    2)indent_style

    设置indent_style来指定代码缩进方案

    indent_style = tab	# 使用制表符缩进
    indent_style = space	# 使用空格缩进
    

    3)indent_size

    设置indent_size来指定缩进长度

    indent_style = space
    indent_size = 2	# 使用2个空格缩进
    

    4)end_of_line

    设置end_of_line来指定行结尾方式

    end_of_line = lf	# 换行(Unix-like)
    end_of_line = cr	# 回车(Mac)
    end_of_line = crlf	# 回车 换行(WINDOWS)
    

    不了解这个的朋友默认就好了(lf),我在这里有提到过

    5)charset

    这个就不用多说了,默认utf-8即可,详见理解计算机字符编码的个人博客

    6)trim_trailing_whitespaceinsert_final_newline

    • 设置trim_trailing_whitespace来规定是否允许行尾空格

    • 设置insert_final_newline表示文件是否以空行结束

    两者都是布尔值

    参考