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 n
orC-c C-v C-n
)- 次のソースブロックに移動します。
- org-babel-previous-src-block (
C-c C-v p
orC-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(範囲) | データの最小値 |