최근 수정 시각 : 2025-10-25 03:40:52

EditorConfig


<rowcolor=#ffffff,#dddddd> 데이터 직렬화 형식과 설정 파일
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#4d5767,#4d5767><colcolor=#ffffff,#dddddd> 데이터 직렬화 형식 <colbgcolor=#4d5767,#4d5767><colcolor=#ffffff,#dddddd> 텍스트 CSV · JSON(NDJSON/JSON Lines) · XML
바이너리 flatbuffers · protobuf
설정 파일 텍스트 JSON(YAML · JSON5 · JSONC) · XML · INI(dotenv · EditorConfig · TOML) }}}}}}}}}
<colcolor=#000,#fff><bgcolor=#e0efef> EditorConfig
파일:EditorConfig_Logo.svg
<colbgcolor=#e0efef> 종류 설정 파일
개발 EditorConfig Team
출시
안정 버전 v0.17.2
링크 파일:홈페이지 아이콘.svg spec 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg

1. 개요2. 특징3. 지원 설정4. 지원되는 개발 환경
4.1. 편집 지원4.2. 기타

1. 개요

개별 도구에 종속되지 않는 문서 편집기용 설정 규약 및 설정 파일.

같은 팀이더라도 개발자에 따라 사용하는 개발환경이 다르고, 운영체제문서 편집기, 통합 개발 환경 소프트웨어마다 기본 설정이 다르거나 서로 설정이 호환되지 않아 들여쓰기 길이, 개행 문자(CRLF) 설정 같은 코딩 스타일을 통일되게 적용하는 데에 어려움이 있다.

이런 문제를 해결하기 위해 대부분의 문서 편집기가 공통적으로 가지는 설정들을 모아 다양한 도구에서 호환되도록 표준화한 규격이자 설정 파일 포맷이다.

2. 특징

에디터나 IDE 내부 설정에 저장되는 것이 아니라 외부 설정 파일 형태이다. 따라서 설정 파일의 버전 관리가 가능하다. 코드베이스나 프로젝트 단위로 설정을 다르게 관리할 수 있다는 장점도 가진다.

마찬가지로 에디터 내부 설정 방식과 무관하게 외부 파일로 저장되기 때문에, 해당 파일 형식만 인식할 수 있다면 여러 에디터에서 동일한 설정을 공유하는 것이 가능하다. 대부분의 에디터에서 EditorConfig 지원을 내장하거나 플러그인 등을 사용하는 방식을 통해 지원한다.

기본적으로 .editorconfig라는 이름의 파일에 작성한다. 문법은 전반적으로 INI와 유사하게 언어나 경로 패턴별로 섹션을 나누고, <키> = <값> 형태로 적용할 설정을 나열하는 방식이다.

3. 지원 설정

<rowkeepall><rowcolor=#000,#fff> 속성 설명
indent_styletab
space
들여쓰기 탭/공백 사용 여부
indent_size0보다 크거나 같은 숫자
tab
들여쓰기 길이
tab_width0보다 크거나 같은 숫자탭 표시 길이
end_of_linelr
cr
crlf
줄 바꿈에 사용할 개행 문자 종류. 운영체제마다 다른 개행 종류를 통일하기 위한 용도이다.
charsetlatin1
utf-8
utf-8-bom
utf-16be
utf-16le
문자 인코딩
spelling_languageISO 639 - ISO 3166문법 검사 언어
trim_trailing_whitespacetrue
false
줄 끝부분(trailing)에 위치한 공백을 남겨둘지 여부.
AB··⏎
와 같이 줄 끝에 공백이 있는 경우 인식하기 어렵기 때문에 지우는 것이 일반적이나, 마크다운과 같이 줄 끝의 공백이 문법상 다르게 해석되는 경우도 있기 때문이다.
insert_final_newlinetrue
false
파일이 항상 개행 문자로 끝날지 여부
roottrue
false
해당 .editorconfig 파일이 루트 파일임을 의미한다. 해당 파일 이후로 부모 디렉토리에서 별도의 파일을 탐색하지 않도록 명시하는 설정.

모든 설정은 따로 기본값이 없으며, 설정하지 않을 시 에디터의 기본 동작 방식대로 동작한다. 만약 설정이 중첩되더라도, 값으로 unset을 지정할 시 값을 지정하지 않은 것으로 해석된다.

대부분의 설정은 대소문자를 구분하지 않는다.

4. 지원되는 개발 환경

4.1. 편집 지원

설정 인식 및 적용이 아닌 설정 파일 편집 자체의 지원을 말한다. 기본적으로 INI나 TOML과 유사한 형식이라 INI 언어 지원으로 지원되는 경우도 있고, Visual Studio나 JetBrains IDE와 같이 별도의 설정 UI를 제공하는 경우도 있다.

4.2. 기타

  • home-manager - $HOME/.editorconfig를 자동으로 생성해 주는 모듈이 있다. 이 방식으로 생성할 경우 root=true가 자동으로 삽입된다.##

[1] Nvim supports EditorConfig. (...) EditorConfig is enabled by default. #[2] EditorConfig support is now builtin. This is enabled by default and happens automatically. #[3] Beginning with BBEdit 11.1, support for EditorConfig is built in to BBEdit. #