이맥스(Emacs) Org 모드

이맥스는 쓰면 쓸수록 매력있는 텍스트 에디터입니다. 이맥스로 할 수 있는게 아주 많습니다. 대부분의 사람들이 이맥스를 프로그래밍 할 때 사용하지만 Org 모드를 이용하면 일정관리, 메모, 문서작성에도 요긴하게 쓸 수 있습니다. 이 글에서는 Org 모드 중 일정관리에 대한 부분을 중점적으로 살펴보도록 하겠습니다.

들어가며

아래는 Org 모드가 어떤 것인지 한눈에 볼 수 있는 이미지입니다.

Preview of Org mode

시작하기

1
2
3
4
(global-set-key "\C-c l" 'org-store-link)
(global-set-key "\C-c a" 'org-agenda)
(global-set-key "\C-c c" 'org-capture)
(global-set-key "\C-c b" 'org-iswitchb)

헤드라인

Org 모드의 시작은 헤드라인과 함께 합니다. 헤드라인은 위의 스크린 샷에서 *로 시작하는 줄입니다. 헤드라인은 단락과도 비슷한데, 들여쓰기와 함께 문서를 __트리 구조__로 작성할 수 있게 합니다. M-RET를 통해 추가할 수 있으며 헤드라인이 있는 줄에서 M-방향키를 입력하면 레벨과 위치를 조절 할 수 있습니다.

1
2
3
4
5
6
7
8
* Top level headline
** Second level
*** 3rd level
some text
*** 3rd level
more text

* Another top level headline

할 일 목록(TODO Items)

헤드라인은 모두 할 일이 될 수 있습니다. 할 일이 되기 위해서는 헤드라인이 _TODO_로 시작하면 됩니다. 헤드라인에서 S-<LEFT> 또는 S-<RIGHT>를 입력하면 헤드라인 -> TODO -> DONE의 세 가지 상태로 쉽게 전환할 수 있습니다.

시간과 날짜(Date and Times)

일정관리에는 시간이 중요합니다. 일정은 특정한 날까지 수행해야 하는 일, 일정한 주기로 반복적으로 일어나는 일, 언제부터 언제까지와 같은 일정 날짜 사이에 해야하는 일 등 시간 엮이는 경우가 많습니다.

Org 모드에서 각각의 할 일은 타임스탬프 레이블을 통해 관리 할 수 있습니다. 타임스탬프는 할 일 목록에만 붙는게 아니라 Org 트리에 있는 엔트리에 모두 붙을 수 있습니다.

일반 시간, 이벤트, 일정

특정한 이벤트나 일정이 열시는 시간을 나타냅니다.

     * Meet Peter at the movies
       <2006-11-01 Wed 19:15>
     * Discussion on climate change
       <2006-11-02 Thu 20:00-22:00>

반복되는 시간

일정한 주기로 반복되는 일을 나타냅니다.

     * Pick up Sam at school
       <2007-05-16 Wed 12:30 +1w>

Diary-style sexp entries

     * The nerd meeting on every 2nd Thursday of the month
       <%%(diary-float t 4 2)>

시간 범위

시간 범위를 나타냅니다. ‘–’로 두 타임스탬프를 연결하는 형태로 표현합니다.

     ** Meeting in Amsterdam
        <2004-08-23 Mon>--<2004-08-26 Thu>

비활성 타임스탬프

아젠다에 나타나지 않는 시간입니다. ‘[‘ ~ ‘]’로 표현되며 할 일을 완료해서 DONE이 되면 나타나는 시간입니다.

     * Gillian comes late for the fifth time
       [2006-11-01 Wed]

태그(Tags)

헤드라인에 서로 연관있는 정보나 추가 정보를 기입하기 위해 태그를 사용할 수 있습니다. 태그는 헤드라인의 끝에 들어가며 여러 태그를 같이 달 수 있습니다. 태그는 문자와 숫자, _, @로 구성되며 ::로 감싸야합니다. 아래는 태그의 예 입니다.

또한 태그는 상속이 됩니다. 아래 예에서 두 번째 레벨의 헤드라인은 :work:boss:notes: 태그를 갖게 되고 세 번째 레벨의 헤드라인은 :work:boss:notes:action: 태그를 갖게 됩니다.

     * Meeting with the French group      :work:
     ** Summary by Frank                  :boss:notes:
     *** TODO Prepare slides for him      :action:

태그는 파일 단위로도 달 수 있습니다. 아래와 같이 문서에 #+FILETAGS:를 이용하면 파일 전체에 태그가 적용됩니다.

#+FILETAGS: :Peter:Boss:Secret:

Enter new tags for the current headline. Org mode will either offer completion or a special single-key interface for setting tags, see below. After pressing , the tags will be inserted and aligned to org-tags-column. When called with a C-u prefix, all tags in the current buffer will be aligned to that column, just to make things look nice.

아젠다(Agenda)

기능

Feature list

일정관리(Todo)

C-c C-c
When the cursor is in a headline, this does the same as C-c C-q.

  • 헤드라인에서 입력하는 경우 : 태그 입력
  • 타임스탬프에서 입력하는 경우 : 타임스탬프 수정

org-support-shift-select

자주쓰는 단축키

태그 단축키

단축키 | 명령어 | 설명
— | — |
C-c C-q | C-c C-q | 현재 엔트리에 태그를 추가합니다

할 일 목록 단축키

단축키 | 명령어 | 설명
— | — |
C-c C-t | org-todo | 헤드라인을 할일, 완료, 상태없음(unmarked)로 변경
S-/ | org-shift-right / org-shift-left | 헤드라인을 할일, 완료, 상태없음(unmarked)로 변경
C-c / t | | 모든 할일 목록을 보여준다
S-M- | org-insert-todo-heading | 현재 헤드라인과 동일한 레벨에 할일 목록을 추가한다.

아젠다 단축키

단축키 | 명령어 | 설명
— | — |
C-c [ | org-agenda-file-to-front | 현재 파일을 아젠다 목록에 추가
C-c ] | org-remove-file | 현재 파일을 아젠다 목록에서 제거
C-, | org-cycle-agenda-files | org-agenda-files 목록에 있는 아젠다 파일 순회
C-c C-d | org-deadline | 데드라인 타임스탬프 추가

Author

이정민

Posted on

2017-11-15

Updated on

2023-11-10

Licensed under

댓글