不起眼的 .editorconfig

還是在看別人 github 上項目的時候,看到好多項目目錄下都會有個 .editorconfig 文件扁瓢,起初看里面內(nèi)容有個 md 的字符,還以為就 markdown 文件的配置來映胁,后來有一次在 Webstorm 里配置一個 tab 鍵占幾個空格時又發(fā)現(xiàn)了這個配置文件绽左,這次細(xì)細(xì)查詢了一番,感覺不起眼的 .editorconfig 還是頗有用處的履怯。

一回还、為什么要用 .editorconfig ?

在多人合作的項目中叹洲,每個人的開發(fā)習(xí)慣是不同的柠硕。以縮進(jìn)來說,有的人習(xí)慣使用 space 鍵來進(jìn)行縮進(jìn)运提,有的人喜歡用 tab 鍵蝗柔,有的人喜歡設(shè)置縮進(jìn)為 4 個空格,有的人喜歡設(shè)置為 2 個空格民泵。這樣產(chǎn)生的后果就是每個人修改后的代碼在格式上總是不統(tǒng)一的诫咱,那么提交到 git 上就會代碼風(fēng)格不一致,變得丑陋無比洪灯。

在此之前,我一直使用 Eslint 做代碼 lint,那么為什么還要使用 .editorconfig 呢签钩?細(xì)細(xì)想了下掏呼,應(yīng)該有兩個方面吧。

  • Eslint 確實包含 .editorconfig 中的一些屬性铅檩,如縮進(jìn)等憎夷,但并不全部包含,如 .editorconfig 中的 insert_final_newline 屬性 Eslint 就沒有昧旨。Eslint 更偏向于對語法的提示拾给,如定義了一個變量但是沒有使用時應(yīng)該給予提醒。而 .editorconfig 更偏向于代碼風(fēng)格兔沃,如縮進(jìn)等蒋得。

  • Eslint 僅僅支持對 js 文件的校驗,而 .editorconfig 不光可以檢驗 js 文件的代碼風(fēng)格乒疏,還可以對 .py(python 文件)额衙、.md(markdown 文件)進(jìn)行代碼風(fēng)格控制。

總結(jié):根據(jù)項目需要怕吴,Eslint 和 .editorconfig 并不沖突窍侧,同時配合使用可以使代碼風(fēng)格更加優(yōu)雅。

二转绷、使用 .editorconfig

1. 示例 .editorconfig 文件

通用的 .editorconfig 配置文件一般如下所示:

# http://editorconfig.org
root = true

[*]
#縮進(jìn)風(fēng)格:空格
indent_style = space
#縮進(jìn)大小2
indent_size = 2
#換行符lf
end_of_line = lf
#字符集utf-8
charset = utf-8
#是否刪除行尾的空格
trim_trailing_whitespace = true
#是否在文件的最后插入一個空行
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab

在上面配置文件中:

  • 第一行 http://editorconfig.org 是 Editorconfig 的官方網(wǎng)站伟件;
  • 第二行 root = true 控制 .editorconfig 是否生效的字段;
  • 其它字段應(yīng)該注意的有 indent_sizecharset议经,如果想要了解更多斧账,參閱:.editorconfig 配置文件字段詳解

測試是否可用:

在項目的 js 文件中使用 tab 鍵進(jìn)行縮進(jìn)爸业,分別修改 indent_size 屬性值為 2 和 4其骄,觀察是否有變化。如果沒有任何變化扯旷,說明還沒有安裝 Editorconfig 插件拯爽。

2. Editorconfig 插件

該插件的作用是告訴開發(fā)工具,如 Webstorm 自動去讀取項目根目錄下的 .editorconfig 配置文件钧忽,如果沒有安裝這個插件毯炮,光有一個配置文件是無法生效的。Webstorm 2017.1 版本之后都是自動安裝這個插件的耸黑。

如果你的 Webstorm 沒有安裝這個插件桃煎,參閱:Webstorm 安裝 Editorconfig 插件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末大刊,一起剝皮案震驚了整個濱河市为迈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖葫辐,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搜锰,死亡現(xiàn)場離奇詭異,居然都是意外死亡耿战,警方通過查閱死者的電腦和手機蛋叼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剂陡,“玉大人狈涮,你說我怎么就攤上這事⊙计埽” “怎么了歌馍?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纤泵。 經(jīng)常有香客問我骆姐,道長,這世上最難降的妖魔是什么捏题? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任玻褪,我火速辦了婚禮,結(jié)果婚禮上公荧,老公的妹妹穿的比我還像新娘带射。我一直安慰自己,他們只是感情好循狰,可當(dāng)我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布窟社。 她就那樣靜靜地躺著,像睡著了一般绪钥。 火紅的嫁衣襯著肌膚如雪灿里。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天程腹,我揣著相機與錄音匣吊,去河邊找鬼。 笑死寸潦,一個胖子當(dāng)著我的面吹牛色鸳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播见转,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼命雀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了斩箫?” 一聲冷哼從身側(cè)響起吏砂,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤撵儿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赊抖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體统倒,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年氛雪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耸成。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡报亩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出井氢,到底是詐尸還是另有隱情弦追,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布花竞,位于F島的核電站劲件,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏约急。R本人自食惡果不足惜零远,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望厌蔽。 院中可真熱鬧牵辣,春花似錦、人聲如沸奴饮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽戴卜。三九已至逾条,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間投剥,已是汗流浹背师脂。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工榨了, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留珊燎,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓逐样,卻偏偏與公主長得像泳桦,于是被迫代替她去往敵國和親汤徽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容