Org ModeはEmacsが標準で提供する拡張機能です。同機能のプロジェクトサイトでは以下のように紹介しています。
Org mode は、様々な機能をサポートしています。メモを取ることから、タスクリストの管理、プロジェクトの管理、文書の編集、再現性のある計算ノート、文芸的プログラミングなどです。これらを高速で効率的なプレーンテキストシステムで実現しています。
以下のリンク先に詳細な情報が載っています。
- Org mode for GNU Emacs
- Org Mode Compact Guide
- The Org Manual
- Org tutorials
- emacs/org-mode.git - Emacs Org mode
インストール
最新のOrg Modeを利用したい場合はELPAもしくはソースコードからインストールします。
見出し
コマンド
見出しとカーソル移動
| 動作 | キーバインド | 関数 |
|---|---|---|
| 見出しの位置を上に移す | M-up | org-metaup |
| 見出しの位置を下に移す | M-down | org-metadown |
| 見出しの位置を1階層上に移す | M-left | org-metaleft |
| 見出しの位置を1階層下に移す | M-right | org-metaright |
| カーソルを近くにある前の見出しに移す | C-c C-p | outline-previous-visible-heading |
| カーソルを同階層にある次の見出しに移す | C-c C-n | outline-next-visible-heading |
| カーソルを現階層の親の見出しに移す | C-c C-u | outline-up-heading |
- org-backward-heading-same-level (
C-c C-b)- カーソルを同階層の前の見出しに移動します。
- org-forward-heading-same-level (
C-c C-f)- カーソルを同階層の次の見出しに移動します。
- org-promote-subtree (
C-c C-<)- 現在の見出しを子見出しも含めて1階層浅くします。
- org-demote-subtree (
C-c C->)- 現在の見出しを子見出しも含めて1階層深くします。
- 見出しの位置で
M-S <right>を押した場合も同様です。
なお、筆者は以下のようにキーバインドを調整しています。
- org-backward-heading-same-level (
C-c <up>) - org-forward-heading-same-level (
C-c <down>)
コピー/カット/ペースト
| 動作 | キーバインド | 関数 |
|---|---|---|
| 見出しと本文を切り取る | C-c C-x C-w | org-cut-special |
| 見出しと本文をコピーする | C-c C-x M-w | org-copy-special |
| 見出しと本文を貼り付ける | C-c C-x C-y | org-paste-special |
プロパティ
https://orgmode.org/manual/Property-Syntax.html http://orgmode.org/guide/Properties.html
- org-set-property (
C-c C-x p)- プロパティを設定する
- org-delete-property
- プロパティを削除する
- Property Syntax (The Org Manual)には
C-c C-c dでプロパティを削除できると記載がある。 - 筆者の環境ではそのキーバインディグは確認できなかった。
単語はアンダースコアでつなぐ。
|
|
ID
見出しはプロパティにIDを持てる。 M-x org-id-get-create で作成する。
|
|
-
コマンド
- org-id-get-create
- 筆者は
M-z o iにアサインしています。
- 筆者は
- org-id-get-create
タグ
- org-set-tags-command (
C-c C-q)- 現在の見出しにタグを設定する
下記のように予めタグのリストをorgファイルに記述にしておけば、 org-set-tags-command実行時にそのリストが表示される。
|
|
TODOキーワード
コマンド
- org-todo (
C-c C-t)- 現在の見出し(エントリー)にTODOキーワードを付与する
- このコマンドを実行するとTODOの状態が遷移する
- org-insert-todo-heading (
S-M-RET)- TODOキーワード付きで新しい見出し(エントリー)を追加する
- org-todo-list
- M-x org-agenda t で呼び出し可
- TODO付きの見出し(エントリー)を一覧で表示する
資料
ナローイング (絞り込み)
ナローイング (絞り込み) はバッファ (ファイル) の表示範囲を制御できる。 Org-Modeでは特定の見出しのみを画面に表示するといったことが可能。
| 振る舞い | キーバインド | 関数名 |
|---|---|---|
| 現在のサブツリーに絞り込み | C-x n s | org-narrow-to-subtree |
| 現在のブロックに絞り込み | C-x n b | org-narrow-to-block |
| 絞り込みを解除する | C-x n w | widen |
| org-narrow-to-subtreのトグル | なし | org-toggle-narrow-to-subtre |
資料
- Structure Editing (The Org Manual)
- org.el (L7250, v9.6.1) - git.savannah.gnu.org
- Narrowing (GNU Emacs Manual)
タスクと繰り返し
https://orgmode.org/manual/Repeated-tasks.html
| 毎月 | +1m |
|---|---|
| 毎週 | +1w |
| 毎日 | +1d |
特殊な記号
|
|
TODOをアジェンダ化 - org-agenda.el
https://orgmode.org/manual/Agenda-Views.html
M-x org-ageda で表示します。
org-agenda-files に登録した .org ファイルを対象にTODOなどを表示します。
- org-agenda-file-to-front (
C-c [)- 現在のファイルを
org-agenda-filesに追加します。
- 現在のファイルを
- org-remove-file (
C-c ])- 現在のファイルを
org-agenda-filesから除外します。
- 現在のファイルを
- org-cycle-agenda-files (
C-'orC-,)org-agenda-filesのファイルを順番に移動します。
- org-agenda-set-restriction-lock (
C-c C-x <)org-agendaの処理対象を現在のサブツリーに限定します。org-agenda-set-restriction-lock実行後、該当箇所がグレー色に変わります。
- org-agenda-remove-restriction-lock (
C-c C-x >)org-agenda-set-restriction-lockを解除します。
agenda view
アジェンダビューは日、週、月、年単位で表示される。 その表示単位に応じて、下記のキーでアジェンダを移動できる。
| キー | 機能 |
|---|---|
| f | 次のアジェンダを表示 |
| b | 前のアジェンダを表示 |
| j | 指定した日を表示 |
アジェンダビューの表示単位は下記のキーで切り替えることができる。
| キー | 機能 |
|---|---|
| v d | 日単位のアジェンダ表示に切り替え |
| v w | 週単位のアジェンダ表示に切り替え |
| v m | 月単位のアジェンダ表示に切り替え |
| v y | 年単位のアジェンダ表示に切り替え |
ソースコード実行 - ob.el
, でエスケープできる。
|
|
|
|
|
|
基本操作
https://orgmode.org/manual/Key-bindings-and-Useful-Functions.html
- org-edit-src-code (
C-c ')- 前提条件: ソースブロック上で実行します。
- ソースブロックを別のバッファで編集します。
- org-babel-insert-header-arg (
C-c C-v j)- 前提条件: ソースブロック上で実行します。
- ソースブロックのヘッダー引数を指定します。
- org-babel-execute-src-block (
C-c C-c)- 前提条件: ソースブロック上で実行します。
- ソースブロックを評価します。
- org-babel-next-src-block (
C-c C-v norC-c C-v C-n)- 次のソースブロックに移動します。
- org-babel-previous-src-block (
C-c C-v porC-c C-v C-p)- 前のソースブロックに移動します。
C#
org-contribパッケージにあるob-csharp.elを使う。
Ruby - ob-ruby.el
https://github.com/dangom/org-mode/blob/master/lisp/ob-ruby.el
Swift - ob-swift.el
https://github.com/zweifisch/ob-swift
アーカイブ - org-archive.el
コマンド
- org-archive-subtree (
C-c C-x C-s)- (見出しの)サブツリーをアーカイブ用ファイルに移動する。
資料
計時 - org-clock.el
コマンド
- org-clock-report
- org-dblock-update (
C-c C-c or C-c C-x C-u)
資料
脚注 - org-footnote.el
脚注は英語圏で footnote と呼ぶ。
以下にorg-modeの脚注の記載例を示す。(12.10 Creating Footnotes (The Org Manual)より引用)
|
|
コマンド
- org-footnote-new
- 新しい脚注を作成します。
- org-footnote-goto-definition
- 指定した脚注に移動します。
- org-footnote-action (
C-c C-x f)- カーソルが脚注のラベルにある場合は、脚注本文へ移動します。
- カーソルに脚注のラベルがない場合は、新しい脚注を作成します。
資料
Speed Keys
カーソルが見出しのアスタリスクにある場合に、n, pなどのキー入力でカーソルを動かすことができる。 ほかにもたくさんのショートカットキーがある。
コマンド
org-speed-commands を使う場合は、事前に org-use-speed-commands でフラグを立てておく。
|
|
コマンドは M-x org-speed-command-help を参照のこと。
追加
org-speed-commands はカスタマイズできる。以下に例を示す。
|
|
資料
Org QL query - org-ql.el
https://github.com/alphapapa/org-ql
例えば、 TODO コージーコーナーに行く を 買い物/誕生日 にrefileしたい場合、
org-ql-refile コマンドでクエリ欄に todo:TODO olp:買い物 誕生日 と入力すると、
TODOステータスが TODO で見出しのパス 買い物/誕生日 に移せる。
|
|
|
|
Consult - consult-org.el
consult-org.elはconsult.el (GitHub - minad/consult) が提供する機能です。
consult-org-heading
TBD.
consult-org-agenda
TBD.
Sparse Tree
Sparse Tree はorgバッファのアウトラインから該当するorgエントリーを検出し、それらを用いてアウトラインを構築する機能です。
https://orgmode.org/manual/Sparse-Trees.html
コマンド
- org-sparse-tree (
C-c /) - org-match-sparse-tree (
C-c \)
org-sparse-tree (C-c /) を実行すると、どのように絞り込むかミニバッファに入力を求められます。
例えば、プロパティを検索する場合は p を選びます。タグで絞り込む場合は m を選びます。
絞り込んだ後にorgエントリーをトグルすると絞り込みは解除されます。
使い方
orgバッファが以下の内容と仮定します。
|
|
例1 +READING
org-match-sparse-tree (C-c \) で +READING と入力した場合、検索結果は以下の通りです。
|
|
例2 +READING+2015
org-match-sparse-tree (C-c \) で +READING+2015 と入力した場合、検索結果は以下の通りです。
|
|
例3 +READING-2020
org-match-sparse-tree (C-c \) で +READING-2020 と入力した場合、検索結果は以下の通りです。
|
|
org-tabel - org-table.el
| コマンド | 効用 |
|---|---|
| M-S-UP | 上に行を挿入 |
| M-S-DOWN | 現在の行を削除 |
| C-c = | 行に対する計算式を入力 |
| C-u C-c = | 列に対する計算式を入力 |
| C-c C-c | 再計算 |
| 表計算の関数 | やってくれること |
|---|---|
| vcount(範囲) | データの個数 |
| vsum(範囲) | データの総和 |
| vprod(範囲) | データの総積 |
| vmax(範囲) | データの最大値 |
| vmin(範囲) | データの最小値 |