Develop/etc
No newline at end of file 에러
연로그
2022. 6. 26. 16:04
반응형
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 체크
참고
- https://stackoverflow.com/questions/5813311/whats-the-significance-of-the-no-newline-at-end-of-file-log
- https://stackoverflow.com/questions/16761227/how-to-make-intellij-idea-insert-a-new-line-at-every-end-of-file
반응형