EditorConfig 생성기

.editorconfig
결과

리포지토리 루트에 둔 .editorconfig는 최신 IDE 모두에게 이 프로젝트가 파일을 어떻게 포맷하는지 알려 주며, 탭과 스페이스 논쟁을 파일 단위로 끝냅니다. Python은 스페이스 4개, JavaScript는 2개, Makefile은 탭(필수)입니다. 이 생성기는 사용자의 형식 설정(들여쓰기 스타일과 크기, 줄 끝, 문자 인코딩, 최대 줄 길이, 마지막 줄 개행, 줄 끝 공백 제거)으로 .editorconfig를 만들고, 흔히 쓰는 두 가지 재정의를 항상 포함합니다: [*.md]는 Markdown의 줄바꿈을 위해 줄 끝 공백을 유지하고, [Makefile]은 make가 필수로 요구하는 탭을 사용합니다.

.editorconfig 만드는 방법

  1. 1

    전역 기본값을 설정하세요

    문자 인코딩(기본값 utf-8), 줄 끝(lf 대 crlf), 들여쓰기 스타일과 크기, 최대 줄 길이, 마지막 줄 개행 삽입, 줄 끝 공백 제거.

  2. 2

    내장 재정의를 확인하세요

    생성기는 항상 `[*.md]`(Markdown이 줄바꿈에 필요한 줄 끝 공백을 남기는 `trim_trailing_whitespace = false`)와 `[Makefile]`(make 자체가 요구하는 `indent_style = tab`)을 추가합니다.

  3. 3

    파일을 복사하세요

    복사 버튼으로 생성된 `.editorconfig`를 가져와 리포지토리 루트에 두세요.

  4. 4

    나중에 확장하세요

    언어별 규칙이 필요하신가요? 예를 들어 `[*.py]`에 `indent_size = 4`처럼 직접 섹션을 추가하세요.

.editorconfig가 하는 일

프로젝트 루트(또는 임의의 디렉터리)에 둔 .editorconfig라는 파일은 형식 규약을 선언합니다. EditorConfig를 지원하는 편집기(모든 주요 IDE와 대부분의 최신 텍스트 편집기)는 파일을 열 때 이 규칙을 적용합니다.

출력 예시

기본 설정(스페이스, 크기 4, LF, utf-8)에서는 생성기가 다음과 같이 출력합니다:

root = true

[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length = 120

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab

주요 디렉티브

디렉티브 허용 값 참고
root true / false 프로젝트 루트에서 true로 설정하면 탐색이 멈춤
charset utf-8, utf-8-bom, latin1, utf-16-be, utf-16-le 기본값은 utf-8
end_of_line lf, crlf, cr 크로스플랫폼이면 lf, Windows 전용 리포지토리면 crlf
indent_style space, tab
indent_size 정수 스페이스 개수. tab일 때는 무시됨
tab_width 정수 탭의 표시 너비(기본값은 indent_size와 동일)
insert_final_newline true / false POSIX 규격에 맞는 파일이 되도록 보장
trim_trailing_whitespace true / false Markdown에서는 끄기(줄 끝 공백이 줄바꿈을 뜻하므로)

언어별 관례 한눈에 보기

언어 / 파일 관례
JS, TS, JSON 스페이스 2개
HTML, CSS, YAML 스페이스 2개
Python 스페이스 4개(PEP 8)
PHP 스페이스 4개(PSR-12)
Ruby 스페이스 2개
Go 탭(gofmt가 강제)
Rust 스페이스 4개(rustfmt가 강제)
Java 스페이스 4개
Makefile 탭(make 자체가 요구)
Markdown 줄 끝 공백 유지(<br>에 사용)
배치 / CMD (.bat) 줄 끝은 crlf

함정: Markdown의 줄 끝 공백

Markdown에서는 줄 끝에 스페이스 2개가 있으면 “여기에 <br>를 넣어라”라는 의미입니다. .editorconfig가 모든 파일에서 줄 끝 공백을 제거하면 그 줄바꿈이 사라집니다. [*.md]에는 trim_trailing_whitespace = false로 재정의하세요.

내 IDE가 지원하나요?

기본 지원: VS Code, JetBrains의 IntelliJ 계열, Sublime Text, Vim(플러그인), Emacs(플러그인), Atom, Notepad++, Xcode. 편집기가 기본적으로 EditorConfig를 지원하지 않더라도 대개 플러그인이 있습니다. 이 파일은 기계가 읽을 수 있어 린터와 포매터도 참고할 수 있습니다.

자주 묻는 질문

root = true를 붙여 프로젝트 루트에 둡니다. 특정 경로를 재정의하려면 하위 디렉터리에 추가 .editorconfig 파일을 둘 수 있습니다. 탐색은 트리를 위로 거슬러 올라가며 처음 만나는 root = true 파일에서 멈춥니다.

아니요. EditorConfig는 모든 편집기에서 공백과 줄 끝 같은 기본을 다룹니다. Prettier와 언어별 린터는 더 깊은 스타일 규칙(따옴표, 세미콜론, 끝 쉼표 등)을 다룹니다. 둘은 서로를 보완합니다.

리포지토리의 Windows 도구가 실제로 필요로 한다면 end_of_line = crlf로 설정하세요. 더 나은 방법은 end_of_line = lf를 커밋하고 .gitattributes* text=auto를 추가하는 것입니다. 그러면 Git가 커밋 시 줄 끝을 정규화하고, 체크아웃 시에는 운영체제에 맞는 줄 끝을 사용합니다.

아니요. 선택한 내용은 파일을 생성하는 데만 사용되며, 서버에 저장되거나 페이지를 떠난 뒤 남는 정보는 없습니다.

관련 도구

이 도구는 다른 언어로도 제공됩니다