Visual studio code - 줄 바꿈 문자(EOL) 설정하기

반응형

    Visual studio code(vscode)는 편집기 상에서 새로운 파일을 생성하거나 편집기에 열려 있는 파일을 업데이트 저장할 때, 저장되는 파일의 저장 형식을 지정할 수 있다.

    정확하게는 EOL(End Of Line)이라고 불리는 줄 바꿈 문자를 지정할 수 있다. 

     

    줄 바꿈 문자(End Of Line, EOL)란?

    텍스트 파일의 경우, 각 줄이 끝났음을(즉, 줄이 바뀌는 것을) 표시하기 위해 각 줄의 마지막에 줄 바꿈 문자(End Of Line, EOL)라고 불리는 특수문자가 추가로 저장된다. 이러한 줄 바꿈 문자(End Of Line, eol)는 공통으로 약속된 형식을 사용하게끔 되어 있어, 해당 텍스트 파일을 사용하는 시스템(장치)의 종류나 특성에 무관하게 동일하게 해석되어 사용될 수 있다. 

    다만, 우리가 주로 사용하는 양대 운영체제 별로 서로 다르게 사용하고 있어 이에 대한 고려가 필요하다.

    • 윈도우즈의 경우, "\r\n"이 사용된다. 즉, 윈도우즈 상에서 생성/저장되는 텍스트 파일 내 각 줄의 끝 부분에는 두 바이트 길이의 "\r\n" 문자가 추가로 저장된다.
    • 유닉스 계열의 운영체제의 경우, "\n"이 사용된다. 즉, 리눅스나 macOS 상에서 생성/저장되는 텍스트 파일 내 각 줄의 끝 부분에는 한 바이트 길이의 "\n" 문자가 추가로 저장된다.

    무엇이 문제인가?

    사용자가 항상 윈도우즈만 사용하거나 유닉스 계열의 운영체제만 사용할 경우에는 문제될 것이 없다.

    하지만, 윈도우즈에서 생성/저장된 파일을 유닉스 계열의 운영체제에서 사용하거나, 그 반대의 경우에는 서로 다른 줄  바꿈 문자(End Of Line, EOL)로 인해 사소한 (?) 문제가 발생할 수 있다. 

     

    예를 들어, 리눅스에서 사용되는 쉘 스크립트를 윈도우즈에서 생성하거나 업데이트 저장하게 되면, 줄 바꿈 문자(End Of Line, EOL)가 기존 "\n"에서 "\r\n"으로 변경되게 되며, 이를 리눅스에서 실행하고자 할 경우, 리눅스는 해당 줄 바꿈 문자(End Of Line, EOL)를 해석할 수 없기 때문에 쉘 스크립트를 실행할 수 없다.

     

    또 다른 예로, 코딩 시 코드 파일을 윈도우즈나 유닉스 계열의 운영체제에서 교차 편집하게 되면 줄 바꿈 문자(End Of Line, EOL)가 계속 변경되게 된다. IDE는 보통 두 버전의 줄 바꿈 문자(End Of Line, EOL)를 모두 지원하므로 IDE 내에서 해당 파일을 열거나 편집하는 데에는 문제가 없지만, 문제는 git이다. 파일의 변경 내역에 줄 바꿈 문자(End Of Line, EOL)의 변경도 포함되어 버리므로, 실제 코드 수정 부분 외에도 줄 바꿈 문자(End Of Line, EOL)의 변경 내용이 git 변경사항에 저장된다. 심지어, 파일의 본문 내용 자체는 변한 것이 하나도 없는데도 단순히 운영체제를 달리해서 저장했다는 이유로 git 변경사항으로 기록되게 된다. git의 사용 목적을 고려해 볼 때, 줄 바꿈 문자(End Of Line, EOL)의 변경 내역은 추적할 필요가 없는 경우가 대부분일 것이다.

     

    Visual studio code(vscode)에서 줄 바꿈 문자 설정하기

    위와 같이 줄 바꿈 문자(End Of Line, EOL)가 운영체제에 따라 다르게 저장되는 현상을 Visual studio code(vscode)에서 방지할 수 있다.

    원리는 다음과 같다.

    • 윈도우즈 상에 설치된 Visual studio code(vscode)이지만, Visual studio code(vscode)에서 생성/저장되는 파일에 유닉스 계열의 줄 바꿈 문자(End Of Line, EOL)를 사용하도록 설정한다.
    • 또는 반대로, 유닉스 계열의 운영체제 상에 설치된 Visual studio code(vscode)이지만, Visual studio code(vscode)에서 생성/저장되는 파일에 윈도우즈 계열의 줄 바꿈 문자(End Of Line, EOL)를 사용하도록 설정한다.

    현재 주로 리눅스 프로그램을 개발하고 있고, Visual studio code(vscode)을 macOS와 윈도우즈 모두에서 사용하고 있기 때문에, 두 곳의 Visual studio code(vscode) 모두 유닉스 계열의 줄 바꿈 문자(End Of Line, EOL)를 사용하도록 설정하여 사용하고 있다.

     

    다음과 같은 방법으로 설정한다.

    Visual studio code(vscode)의 "파일" → "기본 설정"  "설정" 메뉴를 선택하여 설정 화면을 띄운다.

     

    화면 상단의 검색 창에 "eol"이라고 입력하면 "Files: Eol" 설정 항목이 나온다. 해당 드롭박스에서 "\n"을 선택한다.

     
    이와 같이 "\n"을 선택하면 Visual studio code(vscode)에서 생성/편집하고 저장하는 파일의 줄 바꿈 문자(End Of Line, EOL)가 유닉스 형식으로 지정된다.
    반대로, 윈도우즈 형식으로 줄 바꿈 문자(End Of Line, EOL)를 저장하고 싶으면 "\r\n"을 선택하면 된다.

     

    댓글

    Designed by JB FACTORY