org roam使い始めた
この記事は、Org-roamのinfoページを読んで内容を纏めています。 詳しくは原文をあたってください。
Org-roamとは
Org-roamは、 Roam Resarch からいくつかのアイデアを実装したものです。
Org modeで、階層構造でないノートを取るのをサポートします。 wikiのように書く事ができます。
Slip-box (Zettelkasten) メゾッドとは
(infoにあったものを軽く纏め、翻訳は雑なので原文を読むのを推奨)
ドイツの社会学者 Niklas Luhmann によって作成されました。 Luhmannの Slip-boxは、小さいカードの入った箱でした。 一つのコンセプトを書くので一杯になるくらいの小さいカードです。
サイズの制限が、大きなアイデアを小さいコンセプトへ分割するのに役立ちます。 小さいコンセプトが、元のアイデアに少しだけ関連する別のアイデアを探すのに 役立ち、思考の幅を広げてくれます。
Luhmann はカードの関連付けのために順序付きのIDを用いましたが、 Org-roamではハイパーリンクを使っています。
Fleeting notes/permanent notes
slip-boxでは、素早くアイデアをメモするための仕組みが必要です。
それが Fleeting notes
と呼ばれているものです。
Org-roamでは、org-Capture若しくは Org-roamの日記機能を使うことで実現します。
それと対照的なのが Permanent notes
です。
これは名前の通り長く取っておくためのノートで、 literature notesと
concept notesに分類されます。
literature notes
本やウェブサイト、論文等への簡素な注釈付きのメモで、 後に参照するために取っておくものです。
concept notes
コンセプトを書くためのもので、自己説明的であり詳細にかかれている必要 があります。
何故org-roamを(私は)取り入れたか
私は(今は併用していますが)元々完全なるvimmerで、
メモ等には vimwiki
や qfix-howm
を使っていました。
Org-modeに惹かれてEmacsに来たのですが、 デフォルトのOrg modeでは wiki形式のファイル管理ができません。
vimwiki
や qfix-howm
と同じようにwiki形式でメモが取りたかったので
探した所、
Howm (本家)
Org-roam
の二つが目につきました。 正直どちらにするかとても悩んでいたのですが、とりあえず Howm系は触った ことがあったので新しい Org-roamを試してみることにしました。
インストール
私は Emacs-jpの Emacs-in-2020 を参考にしてEmacsの環境を作ったので、 インストールには conao3/leaf.el を使います。
1. leaf-convert-insert-templateでテンプレ挿入
leaf-convert も入れているので、 M-x leaf-convert-insert-templace
を
用いてテンプレートを作成します。
(leaf org-roam
:doc "Roam Research replica with Org-mode"
:req "emacs-26.1" "dash-2.13" "f-0.17.2" "s-1.12.0" "org-9.3" "emacsql-3.0.0" "emacsql-sqlite3-1.0.2"
:tag "convenience" "roam" "org-mode" "emacs>=26.1"
:added "2021-05-18"
:url "https://github.com/org-roam/org-roam"
:emacs>= 26.1
:ensure t
:custom
(org-roam-directory . (file-truename "~/Dropbox/roam")))
2. org-roam-directoryを設定する
まず org-roam-directory
でファイルを保存する場所を決めます。
Org-roamでは、全てのファイルを一つのディレクトリに保存することを推奨して
はいますが、いくつかのディレクトリに分けて保存しても問題はないです。
org-roam-directory
内のディレクトリは再帰的に検索されます。
(ファイルの階層構造で関係性を作るのではなく、リンクによって関係性を作る ことが推奨されています。)
3. org-roam-modeをセットする
org-roam-mode
マイナーモードを起動します。
これにより、キャッシュの作成などのいくつかのhookを設定します。
スタートアップ時( after-init-hook
)に起動することが推奨されています
(add-hook 'after-init-hook 'org-roam-mode)
が、leaf.el使っているので
(leaf org-roam
:doc "Roam Research replica with Org-mode"
:req "emacs-26.1" "dash-2.13" "f-0.17.2" "s-1.12.0" "org-9.3" "emacsql-3.0.0" "emacsql-sqlite3-1.0.2"
:tag "convenience" "roam" "org-mode" "emacs>=26.1"
:added "2021-05-18"
:url "https://github.com/org-roam/org-roam"
:emacs>= 26.1
:ensure t
:custom
(org-roam-directory . (file-truename "~/Dropbox/roam"))
+ :hook (after-init-hook . org-roam-mode)
)
こうします。(参考: leaf.el#hook-keyword) ---
何故かよくわからないんですが、Emacsプロセスを切ってもうまく Melpaへの問合せをしてくれないんですよね...なんでなん...
使い方
ノートの検索・作成: org-roam-find-file
org-roam-find-file
はroamのファイルを検索するコマンドですが、
存在しないタイトルを入力するとそのファイルを作成します。
ノートを作成する際には org-captureのテンプレートが使用されます 。
ここでファイルを作成した後、2秒間何もしないとキャッシュをアップデート します。これはカスタマイズ可能です。
リンクを作成する: org-roam-insert
org-roam-insert
を実行すると、既存のノートのタイトルの一覧が表示
されます。そこからタイトルを選ぶと、そのファイルへのリンクが現在編集中の
ファイルへと挿入されます。
現在存在しないタイトルを指定した場合、そのタイトルで新しいファイルが作成 されます。
バックリンクを表示する: org-roam
org-roam
を実行すると、バックリンクを表示するバッファの表示・非表示を
切り換えることができます。
Org-roam特有の記法等
まだまだ色々あるけど最初の方だけ
タイトルの作成
ノートのタイトルは、 org-roamで検索する対象になります。 一つのファイルに対して複数のタイトルを付けることができ、 これは例えば略称等があるときに便利ですね。
タイトルの指定には幾つかの方法があり org-roam-title-sources
で
変更することができます。
値 | タイトル対象 |
---|---|
'title | #+title プロパティの値 |
'headline | 一番最初のヘッドライン |
'alias | #+roam_alias プロパティの値。スペース区切りで、ダブルクォートで括れば複数単語使えます。 |
タイトルがなかった場合にはファイル名を使用します。
タグの作成(#+roam_tags
)
デフォルトでは #+roam_tags
プロパティの値を使用します。
リファレンス(File Refs)
#+roam_key
を使用することで、特定のリンク等にノートを関連付けることができます。
例えば私のブログへのノートを書くとすると、
#+title: My blog articles
#+roam_key: https://cj-bc.github.io/blog
のようになります。
この状態で https://cj-bc.github.io/blog が別の場所に書かれると、 それもこのノートへのバックリンクとして表示されるようになります。
カスタマイズ
キャッシュのアップデート間隔の調整
org-roam-db-update-idle-seconds
を調節すると、何秒後にアップデート
されるかを調節することができます。
又、 org-roam-db-update-method
を 'immediate
にするとバッファが
保存された直後にアップデートするようになります。
ファイルを作成した後、 C-c C-c
で元のバッファに戻る
org-captureのシステムを使っているものの、org-roamでは
C-c C-c
した後はその作成したファイルのバッファを開くようになっています。
これが気に入らない場合、 org-roam-find-file
の代わりに org-roam-capture
を使うことができます。