使用editorconfig配置你的编辑器
摘要:
在团队开发中,统一的代码格式是必要的。但是不同开发人员使用的编辑工具可能不同,这样就造成代码的differ。今天给大家分享一个很好的方法来使不同的编辑器保持一样的风格。
不同的编辑器也有设置代码风格的,例如我们前端人员最喜欢使用的sublime text 2编辑器。你可以在preferences中选择Settings-User,然后输入自定义的风格,比如:
{
"default_line_ending": "unix",
"font_size": 14,
"ignored_packages":
[
"Vintage"
],
"tab_size": 4,
"translate_tabs_to_spaces": true
}
今天我们用editorconfig来实现多种编辑器的代码风格统一。
简介:
EditorConfig帮助开发人员定义和维护一致的编码风格在不同的编辑器和IDE。EditorConfig项目包含一个文件格式定义编码风格和文本编辑器插件的集合。EditorConfig文件易于阅读并且他们与版本控制器很好地合作。

editorconfig文件:
下面是一个editorconfig文件例子,用于设置Python和JavaScript行尾和缩进风格的配置文件。
# 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)
[*.js]
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
点击此处寻找更多的实例:
怎样安装editorconfig文件:
当打开一个文件时,EditorConfig插件会在打开文件的目录和其每一级父目录查找.editorconfig文件,直到有一个配置文件root=true。EditorConfig配置文件从上往下读取,并且路径最近的文件最后被读取。匹配的配置属性按照属性应用在代码上,所以最接近代码文件的属性优先级最高。
注意:Windows 用户在项目根目录创建.editorconfig文件,可以先创建“.editorconfig.”文件,系统会自动重名为.editorconfig。
文件格式:
EditorConfig文件使用INI格式。斜杠(/)作为路径分隔符,#或者;作为注释。EditorConfig文件使用UTF-8格式、CRLF或LF作为换行符。
通配符:
| * | 匹配除/之外的任意字符串 |
| ** | 匹配任意字符串 |
| ? | 匹配任意单个字符 |
| [name] | 匹配name字符 |
| [!name] | 匹配非name字符 |
| {s1,s2,s3} | 匹配任意给定的字符串(since 0.11.0) |
属性:
indent_style: 设置缩进风格,tab或者空格。tab是hard tabs,space为soft tabs。
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文件。
点击此处查看更多属性
注意:属性不区分大小写
实例:
下面以sublime text为例,测试editorconfig是否起作用。首先需要给sublime安装EditorConfig插件,然后在项目的根目录新建文件".editorconfig",内容如下:
# EditorConfig is awesome: <a onclick="javascript:pageTracker._trackPageview('/outgoing/EditorConfig.org');" href="http://EditorConfig.org">http://EditorConfig.org</a>
# 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,html,css}]
charset = utf-8
# Tab indentation (no size specified)
[*.js]
indent_style = tab
tab_width = 50
我特意将tab的width修改的很大,你可以重新打开编辑器测试下tab。
附录:
https://github.com/editorconfig?page=1
使用editorconfig配置你的编辑器的更多相关文章
- ASP.NET 配置KindEditor文本编辑器
ASP.NET 配置KindEditor文本编辑器 跟着这篇博客做了两个小时,只搞出了下面这么个东西. 时间浪费在了原博客里这样的一句话:将kindeditor/asp.net/bin/LitJSON ...
- 用可配置外部工具的编辑器编译与执行java
用可配置外部工具的编辑器编译与执行java 最近用了everedit.觉得比之前平时用的Editplus有更多的细节与功能要好许多. 这里就写写用everedit编译与执行java的方法. 原理 ja ...
- ASP.NET配置KindEditor文本编辑器-图文实例
1.什么是KindEditor KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 KindEditor 把传统的多行文本输入框(tex ...
- Django配置富文本编辑器kindeditor
一.简介 django是一个容易快速上手的web框架,用它来创建内容驱动型的网站(比如独立博客)十分方便.遗憾的是,django并没有提供官方的富文本编辑器,而后者恰好是内容型网站后台管理中不可或缺的 ...
- laravel-admin 配置富文本编辑器流程
laravel-admin默认去除富文本编辑器的,官方也给出了配置方法. 我配置的是wangEditor,本来配置完后就能愉快得使用了,可万万没想到还是有坑的.默认是用base64上传的,也就是数据库 ...
- VScode 配置为 LaTeX 编辑器(IDE)
VScode 配置为 LaTeX IDE 在Windows中,配置VScode作为LaTeX的编辑器(IDE),并使用SumatraPDF预览PDF文件.主要是LaTeX Workshop扩展的设置, ...
- ASP.NET配置KindEditor文本编辑器
文本编辑器:CKEditor和CKFinder KindEditor 1.KindEditor KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开 ...
- Linux 学习笔记 2 Centos 安装与网络的配置以及VI编辑器的使用
前言 当然,还是觉得Centos 在众多的Linux 发行版中,还是很有地位的,好多的服务器大多沿用的都是一代的Centos 因为它开源(这是废话)而且稳定,这才是服务器沿用的最重要的一项指标. 镜像 ...
- Django-xadmin后台配置富文本编辑器(方法一)
1.https://github.com/twz915/DjangoUeditor3下载包,进入包文件夹,找到DjangoUeditor包拷贝到项目下,和xadmin同级目录 2.找到项目的setti ...
随机推荐
- 输//ip提示找不到应用程序
输//ip提示找不到应用程序??? (未测试)试试:环境变量的 PATH 中添加 C:\Windows\system32 (未测试)试试:默认程序里----协议关联里:管理ie
- oozie 运行demo
昨晚装好了oozie,能启动了,并且配置了mysql作为数据库,好了,今天要执行oozie自带的demo了,好家伙,一执行就报错!报错很多,就不一一列举了,就说我最后解决的方法吧. oozie job ...
- JavaScript:数据类型
JavaScript中数据类型分为两种: 1.基本数据类型 string number boolean null undefined 2.引用类型 数组.Object.function 一.基本数据类 ...
- WebSocket和Socket的区别
前段时间写了两篇介绍HTTP和WebSocket的文章,回复中有人说希望了解下WebSocket和Socket的区别.这个问题之前也有想过,自己对此是有大概的答案,可是并不太确定,于是去搜集了些资料( ...
- 《jdk10》删除javah.exe文件,在Android studio编译jni,使用jdk10生成头文件
今天在用“死丢丢”编译so包的时候,只要一输入"javah -jni..."的命令就会一直提示 'javah'不是内部命令或外部命令,也不是可运行的程序或批处理文件 找了很久才发现 ...
- apk签名打包时报master password is required to unlock the password database.错误,或者signtrue versions无法勾选,以及Error:Execution failed for task ':app:lintVitalRelease'.
1.如果在签名时android studio报"Master password is required to unlock the password database.The passwor ...
- css样式冲突问题练习例子
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org ...
- WPF Tutorial - Using A Visual Collection
While WPF and XAML make the common 90% of UI programming quite easy, sometimes it gets a little odd ...
- Python之FLAGS用法
from absl import app from absl import flags FLAGS = flags.FLAGS flags.DEFINE_string('gpu', None, 'co ...
- QWSLock::up(): Invalid argument
运行qt时,点击QMessageBox的确定按钮是出现错误QWSLock::up(): Invalid argument, QWSLock::down(): Invalid argument,这个是q ...