이맥스(Emacs) Org 모드 - 1. 시작하기
들어가며
Org 모드는 이맥스를 이용해 문서를 작성하거나 일정관리를 할 수 있도록 도와주는 모드입니다. 위의 그림과 같이 생각을 구조적으로 정리하고 타임스탬프를 이용해 일정을 관리할 수 있습니다.
또한 이렇게 작성된 문서는 다양한 형태의 포맷으로 변환이 가능합니다.
Org 모드의 기능은 아주 많기 때문에 이번 포스팅에서는 Org 모드의 가장 기본이 되는 요소들에 대해 먼저 알아보고 이어지는 포스팅을 통해 점차 Org 모드의 세부 기능에 대해 알아보도록 하겠습니다.
이 포스팅에 있는 내용은 대부분 Org 모드 공식 페이지의 메뉴얼과 가이드를 가지고 정리한 것으로, 자세한 내용은 공식 홈페이지를 참고하시면 됩니다.
이맥스의 Org 모드가 갖는 장점
1. 문서작성
이맥스 자체는 텍스트 편집기이기 때문에 사람이 보기 좋게 서식을 갖추어 바로 보기는 어렵습니다. 하지만 이렇게 서식을 신경쓰지 않아도 되기 때문에 문서의 외형보다는 __내용__에 집중해서 문서를 작성할 수 있도록 해줍니다.
게다가 이렇게 Org 모드를 통해 작성한 문서는 HTML, PDF, LaTeX, Markdown, OpenDocument 등 다양한 형식으로 변환이 가능하기 때문에 결국 서식에 있어서도 워드프로세서에 비해 훨씬 확장성이 크다 할 수 있습니다.
데이터와 모양(서식)을 분리한게 마치 HTML과 CSS 관계랑 비슷하죠? 또한 문서 자체가 텍스트 이기 때문에 용량도 작고 OS나 특정 워드프로세서와 같은 소프트웨어 종속적이지 않다는 장점도 가집니다.
2. 일정관리
일정 관리에 있어서도 Org 모드는 할 일 목록(ToDO), 타임스탬프, 링크, 아젠다 뷰, 달력 등을 이용해 손쉽게 일정을 관리 할 수 있는 다양한 기능을 제공합니다. 이런 기능들은 이맥스 특유의 단축키 시스템과 결합되어 사용자에게 엄청난 생산성을 가져다 줍니다.
시작하기
Org 모드는 확장자가 .org인 파일을 열면 자동으로 활성화 되는 메이저 모드입니다. 직접 Org 모드를 활성화 시키고 싶으면 M-x org-mode<RET>
키를 입력하면 됩니다.
만약 Org 모드가 설치되어 있지 않다면 아래와 같이 org 모드를 설치합니다.M-x package-install RET org RET
헤드라인(Headlines)
Org 모드의 시작은 헤드라인과 함께 합니다. 헤드라인은 위의 스크린 샷에서 *
로 시작하는 줄입니다. 헤드라인은 단락과도 비슷합니다. 들여쓰기와 *
의 개수는 단락의 레벨을 나타냅니다. 헤드라인을 이용해서 __트리 구조__로 문서를 작성할 수 있습니다. M-RET
를 통해 헤드라인을 추가할 수 있으며, 헤드라인이 있는 줄에서 M-방향키
를 입력하면 레벨과 위치를 조절 할 수 있습니다.
1 | * Top level headline |
할 일 목록(TODO Items)
헤드라인은 모두 할 일이 될 수 있습니다. 할 일이 되기 위해서는 헤드라인이 __TODO__로 시작하면 됩니다. 헤드라인에서 S-<LEFT>
또는 S-<RIGHT>
를 입력하면 헤드라인 -> TODO -> DONE
세 가지 상태로 쉽게 전환할 수 있습니다.
플레인 리스트(Plain lists)
1 | ** Lord of the Rings |
헤드라인이 단락과 같은 역할을 한다면 플레인 리스트는 단락에서 리스트를 표현하는데 사용됩니다. 또한 플레인 리스트는 이후 설명할 체크박스(Checkboxes)에도 사용됩니다.
플레인 리스트는 크게 순서가 있는 리스트, 순서가 없는 리스트, 디스크립션 리스트로 나눌 수 있습니다.
순서가 없는 리스트
-
나+
,*
로 시작합니다. 여기서*
는 위치에 따라 헤드라인이 되기도 하고 플레인 리스트가 되기도 하기 때문에 혼동을 줄이기 위해-
나+
를 사용하는게 좋습니다.순서가 있는 리스트
1.
이나1)
처럼 숫자에.
이나)
를 붙여서 표현합니다. 만약 20과 같은 숫자로 시작하고 싶다면[@20]
과 같이 사용하면 됩니다.디스크립션 리스트
디스크립션 리스트는 정의를 표현하기 위해 사용며 순서가 없는 리스트에::
를 이용해서 표현합니다.. 사전을 생각하면 쉬운데,::
를 기준으로 왼쪽에는 단어, 오른쪽에는 설명을 적는다고 생각하면 쉬울 것 같습니다.
플레인 리스트에서 S-<LEFT>
또는 S-<RIGHT>
키를 입력하면 리스트의 형태가 바뀌고 M-<RET>
를 입력하면 새로운 플레인 리스트 아이템을 추가할 수 있습니다.
체크박스(Checkboxes)
플레인 리스트 안에 있는 아이템은 체크박스를 가질 수 있습니다. 체크박스를 사용하는건 간단합니다. 아이템의 맨 앞에 [ ]
를 삽입하면 됩니다. 단축키로는 M-S-<RET>
를 사용합니다.
체크박스에 체크를 하거나 체크를 해제하는건 C-c C-c
단축키를 사용합니다.
또한 체크박스가 있는 아이템의 부모는 진행 사항을 알 수 있습니다. 부모 아이템의 마지막 줄에 [/]
을 넣으면 [2/4]
와 같은 형태로, [%]
를 넣으면 [50%]
와 같은 형식으로 진행 사항을 보여줍니다.
아래는 체크박스의 예입니다.
1 | * TODO Organize party [2/4] |
접기/펼치기(Folding and Expanding)
헤드라인이나 플레인 리스트는 <TAB>
키를 통해 접기와 펼치기가 가능합니다.
마무리
이번 포스팅에서는 간단히 Org 모드에 대한 설명과 기본 구성요소에 대해 정리 알아 보았습니다. 다음 포스팅에서는 Org 모드를 이용한 일정관리에 대해 조금 더 자세히 알아보도록 하겠습니다.
참고자료
Org 모드 공식 페이지
Org 모드의 기능에 대한 모든 설명을 볼 수 있습니다.
이맥스(Emacs) Org 모드 - 1. 시작하기
https://jeongmin.github.io/2017/11/15/emacs/emacs-org-mode-introduction/