본문 바로가기
Develop/etc

No newline at end of file 에러

by 연로그 2022. 6. 26.
반응형

No newline at end of file 에러

 

자동 줄맞춤 기능만 믿고 커밋하다가 위 문구와 마주치게 되었다😅

클래스의 마지막 라인은 줄바꿈 해주는 것이 컨벤션이라고 알고 있기는 했는데 에러(?)가 발생하는 줄은 몰랐다.

컴파일 하는데는 아무 지장 없지만 너무 거슬려서 원인을 찾아보았다.

 

에러 발생!

 

에러 원인

  • 파일의 끝에 줄바꿈('\n', aka CR, CRLF, ...)이 없음
  • C, C++ 헤더 파일 등에서는 언어 표준 자체에서 요구
  • UNIX에서 시작된 관습 (예전 도구와의 호환성을 위해 유지)
  • 줄 바꿈이 있는 파일과 줄 바꿈이 없는 파일의 차이를 구분할 수 없음 (아래 예제 참고)

 

예를 들어 아래와 같은 test.txt 파일이 있다고 가정하자

yeonlog

 

아래 명령어를 통해 test.txt를 두 번 보려고 한다.

$ cat test.txt test.txt

 

예상 결과

yeonlog
yeonlog

 

실제 결과

yeonlogyeonlog

 

마지막에 개행 문자가 없어 예상한 결과가 나오지 못한다.

 

 

해결 방법

  • 클래스 마지막 라인 줄바꿈


IntelliJ에서는 아래 설정을 통해 저장 시 마지막 라인에 줄바꿈이 들어가도록 설정할 수 있다.

글쓴이는 IntelliJ 2021.2.3 을 사용하는데 버전에 따라 설정 이름이 약간 다를 수 있다.

 

 Settings - Editor - General - Virtual Space - On Save - Ensure every saved file ends with a line break 체크


참고

 

반응형