본문 바로가기
코딩취미/C,C++

.editorconfig 파일을 사용하여 라인 엔딩 설정하기

by 브링블링 2024. 4. 30.
728x90

.editorconfig 파일을 사용하여 라인 엔딩 설정하기

Visual Studio Community에서 파일이 자동 저장될 때 사용되는 라인 엔딩을 변경하는 설정은 기본적으로 제공되지 않습니다. Visual Studio에서 파일을 저장할 때의 라인 엔딩은 파일을 처음 생성하거나 고급 저장 옵션(Advanced Save Options)을 통해 설정할 수 있지만, 자동 저장 기능이 사용하는 라인 엔딩은 직접 설정하는 것이 아니라 이전에 설정된 라인 엔딩을 따릅니다.

 

그러나 프로젝트 또는 솔루션 전체에 걸쳐 일관된 라인 엔딩을 강제하고 싶다면, .editorconfig 파일을 사용하는 방법을 고려할 수 있습니다. .editorconfig 파일을 프로젝트의 루트 디렉토리에 추가하여 소스 코드의 스타일, 포맷, 라인 엔딩 등을 설정할 수 있습니다. 이 설정은 Visual Studio가 파일을 저장할 때 자동으로 적용됩니다.

 

1. .editorconfig 파일 생성:

  1. 프로젝트 루트 디렉토리로 이동: 프로젝트의 루트 디렉토리에서 작업하는 것이 중요합니다. 이 위치에 .editorconfig 파일을 생성하면, 해당 설정이 프로젝트 전체에 적용됩니다.
  2. 파일 생성: 텍스트 에디터(예: Visual Studio Code, Notepad++, Atom 등)를 사용하여 새 파일을 생성합니다.
  3. 파일 이름 설정: 파일 이름을 .editorconfig로 저장합니다. 파일 확장자는 없어야 하며, 파일 이름 자체가 .editorconfig입니다.

2. 라인 엔딩 설정 추가:

  • .editorconfig 파일을 열고 다음 설정을 추가합니다. 이 설정은 모든 파일에 대해 Windows 스타일의 CRLF 라인 엔딩을 사용하도록 지정합니다.  
root = true

[*]
end_of_line = crlf
  • 이 설정은 모든 파일([*])에 대해 end_of_line을 crlf로 설정합니다. 만약 특정 파일 확장자나 디렉토리에만 적용하고 싶다면, 해당 패턴을 명시하면 됩니다.

3. Visual Studio에서 .editorconfig 적용 확인:

  • Visual Studio를 재시작한 후, 파일을 수정하고 저장해 보세요. .editorconfig 파일에 명시된 라인 엔딩 설정이 적용되어야 합니다.

4. 설정 확인:

  • 변경된 파일을 열어 라인 엔딩이 올바르게 적용되었는지 확인합니다. 일반적으로 이러한 변경사항은 파일을 열 때 바로 반영됩니다.
728x90

설정 방법 및 의미

.editorconfig 파일 안에는 다양한 설정을 정의할 수 있습니다. 기본적인 구조는 다음과 같습니다.

# 최상위 설정 파일임을 지정
root = true

# 모든 파일에 적용되는 기본 설정
[*]
indent_style = space
indent_size = 4
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true

# 특정 파일 패턴에 적용되는 설정
[*.py]
indent_style = space
indent_size = 4

[*.md]
trim_trailing_whitespace = false

 

여기서 사용된 설정들의 의미는 다음과 같습니다.

  •  root = true: 이 파일이 설정의 루트임을 나타내며, 에디터가 이 디렉토리 위로 설정을 검색하지 않도록 합니다.
  •  [*]: 모든 파일에 적용될 설정을 시작합니다.
  •  indent_style: 들여쓰기 스타일 (space 또는 tab)을 지정합니다.
  •  indent_size: 들여쓰기 크기를 지정합니다.
  •  charset: 파일 인코딩을 지정합니다.
  •  end_of_line: 줄바꿈 스타일을 지정합니다 (lf, crlf, cr 중 선택).
  •  trim_trailing_whitespace: 줄 끝의 공백을 자동으로 제거할지 여부를 지정합니다.
  •  insert_final_newline: 파일의 끝에 새 줄을 자동으로 삽입할지 여부를 지정합니다.

728x90