컴퓨터에서 텍스트 파일을 다루기 시작한 이후로 세 메이저 운영체제인 윈도우, 맥, 리눅스에서는 텍스트 파일 내에서 줄바꿈을 나타내는 제어문자가 달랐습니다. 차이를 알아보기 전에 캐리지리턴과 라인피드의 뜻을 알아야 합니다.


캐리지 리턴


캐리지 리턴이나 라인피드는 모두 타자기에서 사용되던 말입니다. 고전적 타자기를 보면 아래 그림과 같이 종이가 장착되어 있는 부분이 보이는데, 이 부분은 타이핑을 하는 동안 다음 글자가 입력될 수 있도록 이동을 합니다.



이 부분을 캐리지라고 합니다. 이 부분은 손으로도 직접 이동을 시킬 수도 있었는데, 타이핑시 활자가 종이의 왼쪽 끝으로 오도록 손으로 밀어내는 동작을 캐리지 리턴이라고 합니다.



라인피드


그냥 캐리지리턴을 하고 바로 타이핑을 하면 이전에 타이핑된 부분에 다시 타이핑이 되므로 글자가 겹치게 됩니다. 겹치지 않도록 하려면 종이를 위로 이동시켜야 하는데, 타자기마다 이 기능을 하는 레버가 있습니다. 이 레버를 움직여서 종이를 위로 한 줄 이동시키는 동작을 라인피드라고 합니다.



운영체제마다 다르게 사용됐던 줄바꿈문자


아마도 타자기의 원리를 제대로 구현했던 것은 윈도우 같습니다. 윈도우에서는 줄바꿈을 위해서는 줄바꿈이 일어날 문자 뒤에 캐리지리턴(CR)과 라인피드(LF) 문자를 입력해야만(실제로 보이는 문자가 아닙니다.) 줄바꿈이 일어났습니다. 한편, 리눅스에서는 라인피드(LF)만으로 텍스트의 줄바꿈이 일어났고, 고전 MacOS에서는 단순히 캐리지리턴(CR)만으로 텍스트의 줄바꿈이 일어났습니다. 최근 맥에서는 윈도우와 같은 방식을 따릅니다.


노트패드의 문제와 개선사항


노트패드는 윈도우 초기부터 텍스트 파일을 읽고 쓰는 기본 프로그램이었습니다. 기능이 너무너무 없는 단순한 프로그램이어서 가볍고 빨리 실행이 됐었죠. 하지만, 아래와 같이 윈도우에서 작성된 파일을 리눅스에서도 동일한 방식으로 작성해서 열면 문제가 나타납니다.


 

엔터키를 이용해서 줄바꿈을 했던 부분을 동일하게 리눅스의 vi 에디터에서 작성하여 메모장으로 읽어들이면 다음과 같이 나타납니다.



분명히 리눅스에서 줄바꿈을 했던 부분이 위에서처럼 이상한 문자로 채워져서 열립니다. 이것은 버그가 아니라 두 운영체제가 줄바꿈을 처리하는 방식이 다르기 때문에 생기는 현상입니다. 위와 같은 일을 피하려면 메모장 말고 Notepad++, Editplus, Visual Studio Code 등과 같은 다른 프로그램이 필요합니다. 단순한 문제 같은 것 때문에 새로 프로그램을 설치해야 하는 것은 성가신 일입니다.


그런데, 최근 msdn 블로그에 올라온 다음의 글을 보면 Windows 10 Insider Preview Build 17666부터는 노트패드에서도 줄바꿈을 자동으로 인식해서 제대로 보여주기 시작하게 됩니다.


https://blogs.msdn.microsoft.com/commandline/2018/05/08/extended-eol-in-notepad/


궁금하신 분들은 설치해서 사용해보셔도 될듯합니다.

'Writing > Text Editors' 카테고리의 다른 글

전자책 출판을 위한 ebook 에디터 비교  (1) 2018.08.20

+ Recent posts