Sublime Text

아직도 내가 좋아하는 텍스트 편집기는 도스 시절 오로라(Aurora)다. 무한한 크기의 파일을 빠른 속도로 편집할 수 있는 편집기였다. 무엇보다도 사용자가 원하는 기능을 자체에서 제공하는 강력한 스크립트 기능을 이용해서 추가할 수 있었다. 그러나 도스에서 윈도 환경으로 바뀌면서 DOS Navigator처럼 오로라도 역사의 뒤안 길로 사라졌다. 그 뒤 오로라처럼 강력한 기능을 하는 편집기를 20년 동안 찾았다. UltraEdit, EditPlus, NoteTab, Notepadd++등 정말 많은 텍스트 편집기를 사용해 봤다. 그러나 어느 것도 만족시키지 못했다. 오늘 소개하는 Sublime Text도 완전히 만족스런 편집기는 아니다. 그러나 Package Control을 통해 사용자가 원하는 기능을 편집기에 추가할 수 있다. 오로라만큼은 아니지만 확장 및 발전 가능성이 아주 큰 편집기이다.

Aurora에서 EditPlus로

내가 주로 사용하는 편집기는 EditPlus[1] [2]이다. 비트 컴퓨터에서 강의를 시작[3]하면서 사용했었으니 거의 20년 가까이 사용하고 있는 셈이다. 당시 프로그램을 짜며 입에 맞는 윈도용 텍스트 편집기를 찾고 있었다. 도스(DOS)에서는 오로라(Aurora)라는 지금 생각해도 정말 강력한 텍스트 편집기가 있었다. 그런데 컴퓨터 사용환경이 윈도로 바뀌면서 오로라에 필적할 만한 텍스트 편집기를 찾을 수 없었다. 그나마 괜찮은 편집기가 도스의 Q에디터(Q-Editor)와 비슷하다고 해서 인기를 끈 UltraEdit 정도였다.

그러나 UltraEdit는 정작 한글 입력에 문제가 있었다. 헥사 편집이 가능했지만 완벽하지 않아 유용한 기능은 아니었다[4]. 따라서 한글 입력에 문제가 없으며 프로그램을 짤 때 유용한 편집기를 찾고 있었다. 찾다 찾다 마음에 드는 편집기를 찾지 못해 오로라를 도스창으로 실행시켜서 사용하기도 했었다. 그러나 클립보드 공유 문제등 윈도 환경에서는 불편한 부분이 많았다[5]. 결국 딱 원하는 기능은 아니지만 어느 정도 만족해서 사용한 편집기가 노트탭(NoteTab)이었다. 아마 노트탭 이라는 편집기를 알 사람은 많지 않을 듯하다. 기능적으로 강력하지만 주변에서 사용하는 것을 본적이 없기 때문이다.

노트탭 라이트

상당히 강력한 편집기지만 거의 알려지지 않은 노트탭(NoteTab). 그림에서 처럼 간단한 계산기로 활용할 수 있다. 또 스크립트 기능은 오로라 만큼은 아니지만 상당히 유용하며 강력하다.

노트탭(NoteTab)은 당시나 지금 모두 상당히 강력한 편집기이다. 일단 EditPlus와 비슷한 클립 텍스트[6]을 지원한다. 또 EditPlus처럼 이 창을 이용해서 HTML 태그나 CSS를 손쉽게 입력할 수 있었다. 그러나 EditPlus에는 없는 강력한 스크립트 기능이 있었다. 이 스크립트 기능을 이용하면 FTP 전송, 수식 계산, 메일 전송, 파일 받기, 키보드 매크로 등을 편집기를 통해 사용할 수 있었다. 또 원하는 기능을 이 스크립트를 이용해서 만들 수도 있었다. 즉, 이런 부분은 오로라 편집기와 꽤 비슷했다. 노트탭은 자주 사용하지 않지만 아직까지 사용하는 몇 안되는 프로그램이다. 사칙 연산과 괄호를 이용해서 수식을 입력한 뒤 Ctrl-E를 누르면 계산 결과가 나온다. 아울러 노트탭의 계산 기능이 윈도(Windows)에 포함된 계산기 보다 훨씬 편하고 빠르다[7].

노트탭은 문맥강조(Syntax Highlight)를 지원하는 프로판과 문맥강조 기능이 없는 라이트판이 있었다[8] [9]. 노트탭의 기능은 상당히 좋았지만 프로/라이트 모두 한 가지씩 문제가 있었다. 프로판은 문맥강조를 지원한다. 그러나 UltraEdit처럼 한글 입력에 문제가 있었다. 라이트판은 한글 입력에 아무런 문제가 없으며 더우기 공짜였다. 그러나 프로그램을 짤 때 중요한 문맥강조를 지원하지 않았다. 결국 노트탭과 비슷한 UI, 문맥강조 지원, 한글 입력이 가능한 편집기를 찾게 되었다. 이렇게 해서 Tucows[^Tucows]에서 찾은 편집기가 EditPlus였다.

당시 Tucows는 젓소의 수로 프로그램을 평가했었다. 당시 EditPlus는 Tucows에서 젓소 5마리를 받은 몇 안되는 프로그램이었다. 또 연도는 기억나지 않지만 편집자 추천 프로그램에 올랐던 것으로 기억한다. 아무튼 이렇게 사용해 본 EditPlus에 대한 첫 인상은 괜찮았다. 일단 노트탭에 비해 기능은 떨어진다. 당시에는 FTP 전송도 지원하지 않았다. 또 노트탭처럼 강력한 스크립트 기능은 아예 없었다. 그러나 노트탭과 UI가 비슷했고 원하던 문법강조 기능 및 한글을 지원했다. 여기에 무료였다[10].

프로그래머를 위한 최고의 편집기, 오로라

EditPlus에 대한 얘기를 좀 길게 했다. 그러나 원래 하고 싶었던 이야기는 EditPlus가 아니라 오로라(Aurora) 편집기였다. 오로라 편집기의 윈도판이 있었다면 다른 편집기는 처다 보지도 않고 오로라만 썼을 것 같다. 이 때문에 컴퓨터 환경이 윈도로 완전히 바뀐 2000년대 초반까지 오로라 홈페이지를 방문했었다. 또 윈도 콘솔에서 동작하는 베타판까지 나왔던 것으로 기억한다. 이런 기대를 가지고 몇년을 기다렸지만 오로라 윈도판은 결국 등장하지 않았다.

추억의 오로라 편집기

프로그래머 용으로 감히 최고라 할 수 있는 오로라 편집기. 이젠 이렇게 잡은 화면이나 로 만날 수 있다.

이토록 오로라에 목을 맸던 이유는 오로라는 진정 프로그래머를 위한 최고의 편집기였기 때문이다. 오로라는 도스 환경에서도 무한대 크기의 파일을 열고 편집할 수 있었다. 또 파일의 크기가 아무리 커도 속도의 저하가 거의 없었다. 오로라는 파일 전체를 읽지 않았다. 파일 일부(섹터)만 읽고 섹터 끝에 도달하면 다음 섹터를 읽어 들이는 방식으로 동작했다. 상당히 큰 파일(수 G)을 읽고 PgDn 키를 누르고 있으면 빠른 속도로 페이지를 넘기다 잠시 멈칫 한다. 아마도 이 순간이 하드 디스크에서 직접 다른 섹터를 읽는 순간이었을 것으로 추정하고 있다.

Q-Editor가 수십 M 파일을 열고 버벅 거리던 것에 비하면 이 기능 하나 만으로 오로라가 얼마나 대단한 프로그램이었는지 짐작할 수 있을 것이다. 그러나 내가 오로라에서 가장 좋아했던 기능은 프로그래머를 위한 모든 기능을 갖추고 있었다는 점이 아니었다. 바로 C 형식의 강력한 스크립트 기능이었다. 스크립트 기능으로 새로운 오로라 편집기를 만들 수 있다고 할 정도로 강력했다. 따라서 편집기에서 필요한 기능은 사용자들이 직접 만들어 추가할 수 있었다. 그 기능이 어떤 기능(에리터 자체 기능)이라도 가능했다. 따라서 사용자가 상상하는데로 확장해서 사용할 수 있는 편집기가 오로라였다.

윈도판 오로라로 부르긴 부족하지만... Sublime Text

오라라의 개발이 중단 된 뒤에도 오로라처럼 기능 확장이 가능한 편집기를 계속해서 찾아 왔다. 그러나 이런 편집기는 찾을 수 없었다. 그 뒤 관심을 가진 분야가 (Markdown)을 지원하는 편집기였다. 예전에 블로그에 올린 마크다운에 대한 글(1, 2, 3)을 보면 알 수 있지만 요즘 블로그에 글을 올릴 때는 을 사용한다. EditPlus에서도 제한적으로 마크다운을 사용할 수 있다. 아울러 마크다운을 사용할 수 있는 편집기는 아주 많다. Markdown Edit처럼 마크다운 전용 편집기도 있다. 특히 Markdown Edit는 문법강조는 물론 두개의 창을 이용해서 마크다운의 입력 결과를 실시간으로 알 수 있다.

Markdown Edit

사용자 CSS가 없다면 사용하기 가장 편한 마크다운 편집기. 마크다운을 입력하면 오른쪽 창에 결과를 바로 보여준다.

그러나 Markdown Edit와 같은 편집기를 사용하지 않는다. 블로그의 CSS를 적용하지 못해 블로그에 올린 글과 마크다운 편집기가 표시한 결과가 서로 다르기 때문이다. 마크다운에 대한 문법강조, 실시간 미리보기(실시간이 아니면 브라우저를 통한 미리 보기), 사용자 CSS 적용이 가능한 편집기를 찾다가 알게 된 편집기가 오늘 소개하는 Sublime Text이다. 오로라와 비교하면 장점도 있지만 많이 부족한 것은 사실이다. 오로라는 도스 시절 개발된 편집기이다. 따라서 윈도 기반의 편집기에 한 두 가지 정도의 장점이 있는 것은 아주 당연하다. 그러나 기능면에서만 보면 역시 오로라가 월등하다.

단점

Sublime Text의 장점을 얘기하기 전에 먼저 단점을 얘기하겠다. 단점을 먼저 이야기하는 이유는 여기서 지적한 단점 외에 다른 단점이 눈에 띄지 않기 때문이다. Sublime Text의 단점은 한글 입력 문제다. 한글을 입력하면 글자가 자소 단위로 바로 입력되지 않는다. 글자를 완성하기 전까지 화면 왼쪽 상단의 작은 입력창에서 글자를 완성한다. 다음 글자를 입력하면 Sublime Text에 한글이 입력된다. 이 문제는 Sublime Text 개발자가 직접 처리해야 하는 부분이다. Package Control를 이용해서 IMESupport라는 패키지를 설치하면 한글 입력창이 Sublime Text 창 안쪽으로 들어오기는 하지만 온전한 해결책은 아니다.

Sublime Text의 한글 문제

그림의 둥근 원을 보기기 바란다. 원래 전체 화면 왼쪽 상단에 생기는 한글 입력 창을 Sublime Text 창의 글자 왼쪽으로 가져오는 패키지가 IMESupport이다. 글자 왼쪽에 있으면 글자가 지워진 것 같아서 글자 왼쪽 위에 오도록 패키지를 직접 변경했다[11].

확장(Package Control)

Sublime Text에서 가장 마음에 드는 기능은 Package Control로 불리는 확장 기능이다. 이 기능을 이용하면 Sublime Text에 원하는 기능을 추가할 수 있다. 마크다운을 원하면 Package Control(Ctrl+Shift+P)에서 마크다운을 추가하면 된다. Markdown으로 검색해 보면 Markdown Preview, Markdown​Editing, Markdown Extended, Monokai Extended, Markdown​Live​Preview등 56개의 마크다운 관련 패키지가 나타난다. 이 글을 쓰면서 사용하고 있는 패키지는 Markdown Preview이다. 글을 입력하면 바로 옆창에 실시간으로 마크다운 결과를 표시해 주는 Markdown​Live​Preview가 있다. 그러나 Markdown​Live​Preview는 마크다운 문법을 완벽하게 지원하지 못했다[12].

아무튼 마크다운과 관련된 여러 패키지를 사용해 보고 결정한 패키지가 Markdown Preview였다. Markdown PreviewMarkdown​Live​Preview처럼 실시간으로 보여주지는 못한다. 그러나 마크다운 문법강조를 지원하며 사용자 CSS를 지원한다. 또 블로그의 컨텐츠 구조를 그대로 적용할 수 있다. 즉, 설정을 바꾸고 패키지의 파이썬 파일만 조금 수정하면 Sublime Text에 입력한 글과 블로그에 올린 글을 거의 비슷하게 표시된다. 또 Markdown Preview 패키지를 Alt-M으로 바인딩 해서 사용하니 실시간은 아니라고 해도 상당히 편하게 사용할 수 있었다.


Sublime Text와 Markdown Edit

Sublime Text에 Markdown Edit를 설치하고 브라우저로 본 결과이다. 사용자 CSS와 블로그 엔트리 구조를 적용했기 때문에 실제 블로그에 올린 글과 거의 비슷하게 표시되는 것을 알 수 있다.

물론 Sublime Text는 마크다운 외에 다른 언어를 사용할 때도 유용하게 사용할 수 있다. 상용판이지만 무료로 사용해도 기능제한이 거의 없다. Sublime Text에 없는 기능은 패키지를 이용해서 사용자가 추가할 수 있다. 원하는 기능을 하는 패키지를 찾을 수 없다면 다른 사용자를 위해 패키지를 직접 개발해도 된다. Sublime Text에 대해 조금 더 자세히 알고 싶은 사람은 생황코딩Sublime Text 소개를 참고하기 바란다. 현재 사용하고 있는 Sublime Text에 대한 설정과 패치는 나중에 다른 글로 올리도록 하겠다. 참고로 좋은 프로그램을 발견하면 며칠간 기분이 좋다. 몇년 전 Sublime Text를 처음 발견했을 때도 비슷했었다.

남은 이야기, EditPlus와 vi

1997년 비트 컴퓨터에서 전문가 과정을 맡아 CGI(Common Gateway Interface)에 대해 강의하며 소개한 편집기가 EditPlus였다. CGI는 프로그래밍 특성상 파일을 계속 서버에 올리고 서버에 있는 프로그램을 수정해야 했다. 서버 작업이 많은 CGI 프로그래밍이라 당연히 FTP 전송을 지원하는 편집기가 편했다. 따라서 대부분의 수강생들이 한글에 문제가 있지만 FTP 전송을 지원하는 UltraEdit를 사용하고 있었다. UltraEdit 대용으로 학생들에게 추천한 편집기가 EditPlus였다. 초기판에서는 FTP를 지원하지 않았지만 소개할 당시에는 EditPlus도 FTP 전송을 지원했기 때문이다. 많은 학생들이 EditPlus를 사용하자 비트 컴퓨터에서 아예 EditPlus의 라이선스를 구입했던 것으로 기억한다[13].

1990년부터 2005년까지 유닉스 시스템을 관리했었다. 당시 사용하던 편집기는 당연히 vi였다. 리눅스에 vi를 개선한 vim이 있었지만 내가 주로 관리한 시스템은 솔라리스(Solaris)였기 때문에 vim 보다는 vi를 주로 사용했다. 편집기의 확장성과 기능을 생각하면 vi만한 편집기도 없다. 또 vi에서 정규식을 이용해서 작업하는 걸 보여주면 모르는 사람들은 마술을 부리는 것으로 착각하곤 했다. 그런데 vi를 요즘은 거의 사용하지 않는다. 사용하는 환경이 윈도+유닉스에서 윈도로 바뀌었기 때문이다.

관련 글타래


  1. 지금은 회사 이름과 도메인 모두 EditPlus로 바뀌었다. 그러나 내가 처음 사용할 때는 es-computing이었던 것으로 기억한다. 
  2. 프로그램을 거의 짜지 않는 요즘은 편집기를 사용하는 일 자체가 많지 않다. 
  3. 홈페이지의 히스토리를 보면 1.0판이 1998년에 나온 것으로 되어있다. 당시 내가 처음 사용한 프로그램의 판번호가 0.9x였으니 1996~1997년 쯤 되는 것 같다.] 
  4. .exe와 같은 2진 파일을 편집하고 저장하면 편집된 실행 파일이 대부분 동작하지 않았다. 즉, 편집은 가능하지만 2진 코드 처리에 문제가 있었다. 
  5. 도스 네비게이터]5와 함께 사라지는 것을 아쉬워한 몇 안되는 프로그램이 오로라다. 
  6. 요즘 상당히 많은 편집기에서 지원하는 왼쪽 측면 창. 파일 불러오기, HTML 태그 입력등 여러 가지 기능이 이 측면 창에 포함되어 있다. 이 기능을 노트탭에서 처음봤다. 
  7. 숫자만 입력해서 결과를 보는 것과 설사 숫자뿐이라고 해도 수식을 보고 결과를 보는 것은 큰 차이가 있다. 특히 계산을 틀렸을 때 유용성은 더 증가한다.] 
  8. 지금은 프로/라이트로 구분되지만 처음 사용할 때는 프로그램 이름이 약간 달랐다. 
  9. 당시 기준이다. 지금은 프로/표준/라이트 판이 있다. 
  10. 지금은 유료 프로그램이지만 0.9x 대에서는 무료였던 것으로 기억한다. 
  11. 현재 불완전하기는 하지만 원래 입력되는 위치에 오도록 패치한 상태다. 기본 글꼴과 글꼴 크기를 바꾸면서 발생한 문제로 보인다. 
  12. 기능적으로 보면 Sublime Text와 Markdown​Live​Preview를 사용하는 것 보다는 Markdown Edit를 사용하는 것이 더 낫다. 
  13. 석달에 한번 정도 전문가 과정에서 강의를 했었다. EditPlus를 추천하고 석달 뒤 다시 강의를 하면서 확인해 보니 비트 컴퓨터에서 아예 라이선스를 구입해서 사용하고 있었다. 그리고 시기는 정확히 기억나지 않지만 국내에서 가장 많은 프로그래머가 사용하는 편집기에 올랐던 것으로 기억한다.