---
title: "#조직모드 #가이드 #튜토리얼"
url: "https://notes.junghanacs.com/notes/20241215T120457"
author: "Junghan Kim"
date: "2024-12-15T12:04:00+09:00"
lastmod: "2024-12-15T12:07:00+09:00"
tags: ["guide","orgmode","tutorial"]
description: "조직모드의 가이드와 튜토리얼 자료를 줍줍하며 배우는 흐름을 적은 노트이다."
---

> [!abstract] 이 노트에 대하여
> 
> Org mode를 더 잘 쓰기 위해 유튜브와 문서를 훑으며 배운 포인트를 모아 둔다. 새 기능을 무작정 늘리기보다 몰랐던 개념을 익히려는 태도가 또렷한 실용 노트다.

## 히스토리

-   [2025-06-08 Sun 11:37] 양식 검토만
-   2024-12-15 가이드 매뉴얼 문서가 없더라. 일단 판다. 작성할 필요가? 없다. 줍줍해야지. 자료 만드는게 일이 되면 안된다.

## 유튜브에서 배움 아래 정보 확인 바람

[2022-11-18 Fri 14:57]

<https://youtu.be/ABrv_vnVbkk>

유튜브로 튜토리얼을 훑는다. 보다 보면 배우는게 은근히 많다. 대부분 키 바인딩에 대한 부분인데 물론 다 나와있는 건데 찾아보지 않으니까. 키바인딩은 내가 이미 쓰는게 있으면 더 배우지 말고, 몰랐던 개념을 숙지하자. 예컨데, Follow Mode 가 뭔가? 딱 이런 것을 배우고자 하는거다.

1.  스케쥴, 데드라인, 어젠다 뷰
    -   Follow Mode `F` 이게 뭐지?
        -   아! 어젠다 뷰에서 클락인이 I 였지? F 는 팔로우 모드. 다른 윈도우에 해당하는 어젠다 엔트리 파일이 보이는거야. 디테일을 확인하기 좋지.
    -   Move forward with f, backward with b : 어젠다뷰에서 앞뒤로 날짜뷰를 이동 하는 방법이다. 위크뷰라면 주단위로 이동한다. 보기 편하다.
2.  반복
    -   +1w ; 1 주에 한번.
    -   ++1w ; 매주 같은 요일에 weekly review!!
    -   .+4w ; Next occurence 4 weeks after the task is marked as done 날짜 지나면 새로 만들어준다. 못해도 다음 걸로. 예를 들어 세차하기 이런거 에 좋다.
3.  태그 파일 위에 #+TAGS: PHONE(o) COMPUTER(c) 이렇게 정의해놓으면 편하다. `C-c C-q` 로 태그 선택해서 넣기 좋다.
4.  어젠다 뷰에서 :: 테스트 필요!
    -   F follow mode
    -   t list all TODO entries
    -   T entries with a speicial TODO keyword
    -   m match tags / properties / TODO keywords
    -   M like m, but also TODO entries
    -   s search for keywords
5.  Drawers, Logging/quick notes :: 매우 유용
    -   `org-log-into-drawer` 나만의 추가 정보 정의 예를들어서 다음과 같이 만든다.
        
        alsdkfjkadlsjf
    -   `C-c C-z` take quick notes. 로그북으로 캡처가 된다. 괜찮아! LOGBOOK:
        
        -   Note taken on 2022-11-18 Fri 05:37
        
        END:
6.  Acrhiving :: 중요한 주제다
    -   Finished tasks clutter up your org file, so its time to move them out of the way. Define a global archive file with `#+ARCHIVE: filename.org::`
    -   `C-c C-x A` Entry Archive `C-c $` Subtree Archive
    -   `C-u C-c C-x C-s` Search all subtrees under a headline and see which one can be archived with this keys
    -   키바인딩은 확인이 필요하다. 찾으면 된다. 기능을 알아야지 먼저.
    -   Archive 를 되면 프로퍼티로 TIME, FILE, OLPATH, CATEGORY, TODO 기존 정보가 생성된다. 되돌릴 수도 있다는 말이다. 와!
    -   Refile 하고 다른점이로구나. 리파일은 이름대로 재배치일 뿐이다. 이름값을 한다.
    -   org-workflow 에 자동으로 파일 확장자에 추가되서 저장되도록 되어 있다. 즉, 파일 상단에 명시적으로 파일 이름 안써도 된다. -- 테스트 대기 중.
7.  Automatic logging of status changes - 이거 신기하다!
    -   TODO(t@/!) 일 때, 각 의미가 무엇인가?
        -   t : hot key assigned to that TODO keyword -- 임의 키
        -   @ : log a timestame and a note when this is entered
        -   ! : log a timestamp when you leave that keyword
    -   완료 상태가 되면, 타임스탬프에 CLOSED 라고 로그를 남기고 싶다면?! customize variable :: `org-log-done`
    -   `스케줄을 바꾸었을 때` 타임스탬프에 로그를 남겨 놓고 싶다면?! customize variable :: `org-log-reschedule` 이건 매우 필요하다.
8.  Splitting your system up to several files
    -   org-refile-targets, org-refile-use-outline-path, org-refile-allow-creating -parent-nodes 설정을 바꿔줬다. 뭐 괜찮다.
    -   refile 할 때 레벨이 뭔가 싶었다면?!
9.  org-capture
10. :PROPERTIES: drawer

## 대기중 리스트

[2024-12-07 Sat 15:37]

### GTD and Deepwork Workflow

[2022-11-24 Thu 13:57]

-   아래 2 글이 관련된 완벽한 구성을 띄고 있다.

<https://www.adventuresinwhy.com/post/getting-things-done/> <https://www.adventuresinwhy.com/post/org-mode-timekeeping/>

### 파일 링크 작성 방법 : Org Internal Links

[2022-11-29 Tue 05:34]

-   헤딩을 만드는 양식은 다양하다
-   255 / My Target / \*My Target / #my-custom-id / _regexp_ 가 있다.
-   일단 파일 경로를 복사하고, 스니펫으로 양식을 불러온 뒤에, 입력하면 된다.

-   [Org Internal Links | Irreal - irreal.org](https://irreal.org/blog/?p=12151)

### Creating Org Heading Tables

:CUSTOM_ID: 495202e5-43ca-4c66-9513-67c6176780ef

[2023-10-13 Fri 11:03]

신기하다. 괜찮다.

#### Org full-text search

-   Requested features:
    -   helm or counsel integration.
    -   live search.
    -   result previewing support.
    -   a key-binding to capture results into currently clocked org file.
    -   results ordering support
        -   Headlines
        -   Summary
        -   Hightlight
    -   large file-sets support
        
        | ITEM | FRONTEND | SPEED | SORT |
        |------|----------|-------|------|

##### ripgrep (helm-rg)

[GitHub - cosmicexplorer/helm-rg: ripgrep is nice](https://github.com/cosmicexplorer/helm-rg) Now I use it as a default text search engine.

```bash
brew install ripgrep
```
<div class="src-block-caption">
  <span class="src-block-number">Code Snippet 1:</span>
  Install ripgrep in MacOS
</div>

```emacs-lisp
(use-package helm-rg
  :ensure t
  :after org-roam
  :pin "melpa-stable"
  :config
  (defun helm-rg-roam-directory (&optional query)
    "Search with rg in your roam directory, QUERY."
    (interactive)
    (let ((helm-rg-default-directory org-roam-directory)
          (helm-rg--current-dir org-roam-directory))
      (helm-rg query nil)))
  :bind (("C-c n R" . helm-rg-roam-directory)))
```
<div class="src-block-caption">
  <span class="src-block-number">[Code Snippet 2](https://notes.junghanacs.com/notes/20241215T120457#code-snippet--install-helm-rg):</span>
  Install helm-rg
</div>

##### helm-org-rifle

[GitHub - alphapapa/org-rifle: Rifle through your Org-mode buffers and acquire your target](https://github.com/alphapapa/org-rifle)

This one is good. It gives you an idea about the context. But it's not ordering the data by the highlights.

I find org-rifle too slow at the moment. But its output is exacly what I want.

```emacs-lisp
(use-package helm-org-rifle :ensure t
  :after org-roam
  :pin "melpa-stable"
  :config
  (defun org-rifle-roam-directory ()
    (interactive)
    (helm-org-rifle-directories org-roam-directory))
  :bind (("C-c n s" . org-rifle-roam-directory)))
```
<div class="src-block-caption">
  <span class="src-block-number">[Code Snippet 3](https://notes.junghanacs.com/notes/20241215T120457#code-snippet--install-org-rifle):</span>
  Install org-rifle
</div>

##### deft

[GitHub - dfeich/helm-deft: A helm based Emacs module to help search in a predetermined list of directories. Inspired by the deft module.](https://github.com/dfeich/helm-deft)

Helm implementation didn't work for me. So I set a default version here.

One of the drawbacks here is that you can't see the text you matched. From my point of view - helm-rg gives more precise information about the context.

```emacs-lisp
(use-package deft :ensure t
  :after org-roam
  :config (setq deft-directory org-roam-directory
                deft-recursive t)
  :bind (("C-c n d" . deft)))
;; (use-package helm-deft
;;   :ensure t
;;   :straight (:host github
;;                    :repo "dfeich/helm-deft"
;;                    :files ("*.el"))
;;   :config
;;   (setq helm-deft-dir-list `(,org-roam-directory)
;;         helm-deft-extension '("org"))
;;   :bind (("C-c n d" . helm-deft)))

```

##### org-ql

[GitHub - alphapapa/org-ql: An Org-mode query language, including search commands and saved views](https://github.com/alphapapa/org-ql)

Doesn't look suitable for large filesets, but helm implementation is good for medium-sized collections.

```emacs-lisp
(use-package org-ql :ensure t
  :after org
  :config
  (progn
    (message "Loading org-ql")
    (setq org-ql-search-directories-files-recursive t
          org-ql-search-directories-files-regexp ".org\\(_archive\\)?$"))
  )

(use-package helm-org-ql :ensure t
  :after org-ql
  :config
  (setq helm-org-ql-recursive-paths t)
  :bind (("C-c n q" . helm-org-ql-org-directory)))
```

##### recoll

[GitHub - emacs-helm/helm-recoll: helm interface for the recoll desktop search tool.](https://github.com/emacs-helm/helm-recoll)

I found recoll being to hard to set up. I wasn't able to get it working on MacOS.

##### org-fts

[microfts/elisp at main · zot/microfts · GitHub](https://github.com/zot/microfts/tree/main/elisp)

-   It didn't work on MacOS from scratch.
-   I tried to compile its binary manually but that didn't work either.
-   This one looks promising. Let's keep an eye on it.

##### org-agenda search

-   Not trying this for now because agenda wants to open all its files for search.

## SQRT 버전 레퍼런스

**Org mode** is a tool that leverages plain-text files for tasks like making notes, literate programming, task management, etc.

References:

-   [Org Mode homepage](https://orgmode.org/)
-   [Manual](https://orgmode.org/manual/)

여기를 참고했다. /home/junghan/sync/man/dotsamples/vanilla/sqrt-dotfiles-elfeed/Emacs.org

### 설치 및 기본 설정

### 문학적 프로그래밍

-   [조직모드: 이맥스 파이썬 문서 코딩 도구 - 콰르토 주피터 호환 - 나우](https://notes.junghanacs.com/notes/20240603T174450#h-69297ba7-e3fd-4d13-8013-362f04f097c5)

### 도구들

### 생산성 및 지식 관리

-   [조직모드: 세컨드 브레인 제텔카스텐 파라](https://notes.junghanacs.com/notes/20231005T135300)

#### 어젠다 최적화 이슈

둠에 다 반영되어 있다. 참고하자. 헤딩이 왜 다 펼쳐져 있는지에 대한 답이 되었다.

##### Reduce the number of Org agenda files

The more agenda files, the more time it takes to check all of them before producing an agenda command. When Emacs opens a new file, it may do a lot of work, like activating all kinds of minor modes you installed - it can take a considerable time when the number of agenda files is in hundreds Also, don't forget that you can define the set of agenda files for each agenda custom command like this:

의제 파일이 많을수록 의제 명령을 생성하기 전에 모든 파일을 확인하는 데 더 많은 시간이 걸립니다. Emacs가 새 파일을 열면 사용자가 설치한 모든 종류의 부수 모드를 활성화하는 등 많은 작업을 수행할 수 있는데, 의제 파일 수가 수백 개인 경우 상당한 시간이 걸릴 수 있습니다. 또한 다음과 같이 각 의제 사용자 지정 명령에 대한 의제 파일 집합을 정의할 수 있다는 점도 잊지 마세요:

```emacs-lisp
(setq org-agenda-custom-commands
      '((" " "Aujourd'hui" agenda "List of rendez-vous and tasks for today"
         ((org-agenda-files '("~/org/rdv.org" "~/org/bzg.org"))))))
```

Emacs 30 is somewhat better in opening large number of files, but will still take a long time when the number of agenda files is over a thousand.

Emacs 30은 많은 수의 파일을 여는 데는 다소 나아졌지만, 안건 파일 수가 천 개가 넘으면 여전히 시간이 오래 걸립니다.

##### Inhibit agenda files startup options (Org &gt; 8.0)

When you run an agenda command, Org visits agenda files that are not yet visited. When finding a file for the first time, Org checks the startup options and apply them to the buffer: those options are either globally set through the `org-startup-*` variables or on a per-file basis through the `#+STARTUP` keyword.

안건 명령을 실행하면 조직은 아직 방문하지 않은 안건 파일을 방문합니다. Org는 파일을 처음 찾을 때 시작 옵션을 확인하여 버퍼에 적용합니다. 이러한 옵션은 `org-startup-*` 변수를 통해 전역적으로 설정하거나 `#+STARTUP` 키워드를 통해 파일별로 설정할 수 있습니다.

Especially, Org will honor the startup visibility status, as set by [BROKEN LINK: doc::org-startup-folded] or `#+STARTUP: folded`.

특히 Org는 [BROKEN LINK: doc::org-startup-folded] 또는 `#+STARTUP: folded` 에 설정된 대로 스타트업 공개 상태를 준수합니다.

This may slow down the operation of visiting a file very much, and the process of selecting agenda entries consequently.

이로 인해 파일 방문 작업과 안건 항목 선택 프로세스가 매우 느려질 수 있습니다.

To prevent agenda commands to honor startup options when visiting an agenda file for the first time, use this:

안건 파일을 처음 방문할 때 안건 명령이 시작 옵션을 따르지 않도록 하려면 이 기능을 사용하세요:

```emacs-lisp
(setq org-agenda-inhibit-startup t)
```

The side-effect is that newly visited file will have all their headlines visible, but this speeds up agenda generation _a lot_ when those files have many nested headlines.

부작용은 새로 방문한 파일에 모든 헤드라인이 표시된다는 점이지만, 중첩된 헤드라인이 많은 파일의 경우 안건 생성 속도가 _많이_ 빨라진다는 점입니다.

### 유저 인터페이스

### 내보내기

### 키바인딩 및 기타

## INFO 매뉴얼 목차

-   [#활용법: #이맥스 #인포 #매뉴얼](https://notes.junghanacs.com/notes/20221004T150100) 일부 이다.

-   Introduction:: Getting started.
-   Document Structure:: A tree works like your brain.
-   Tables:: Pure magic for quick formatting.
-   Hyperlinks:: Notes in context.
-   Items:: Every tree branch can be a TODO item.
-   Tags:: Tagging headlines and matching sets of tags.
-   Properties and Columns:: Storing information about an entry.
-   Dates and Times:: Making items useful for planning.
-   Refiling and Archiving:: Moving and copying information with ease.
-   Capture and Attachments:: Dealing with external data.
-   Agenda Views:: Collecting information into views.
-   Markup for Rich Contents:: Compose beautiful documents.
-   Exporting:: Sharing and publishing notes.
-   Publishing:: Create a web site of linked Org files.
-   Citation handling:: create, follow and export citations.
-   Working with Source Code:: Export, evaluate, and tangle code blocks.
-   Miscellaneous:: All the rest which did not fit elsewhere.
-   Hacking:: How to hack your way around.
-   History and Acknowledgments:: How Org came into being.
-   GNU Free Documentation License:: The license for this documentation.
-   Main Index:: An index of Org’s concepts and features.
-   Key Index:: Key bindings and where they are described.
-   Command and Function Index:: Command names and some internal functions.
-   Variable Index:: Variables mentioned in the manual.
