3 年使って離れられない、文書作成ツールの紹介
はじめに
こちらの記事は Medley(メドレー) Advent Calendar 2024 の 8 日目の記事です。
今回は私が 3 年ほど使用して、文書作成ツールとして手放せない存在となっているorg-roamについてご紹介したいと思います。
同時に org-roam を使うのに切っても切れない Emacs 環境についても触れていきます。
自己紹介
エンジニア採用グループのテクニカルリクルーターをやっている平木(Layzie)です。
元々はエンジニアとしてプロダクト開発をしていましたが、現在はエンジニア・デザイナーの中途採用をメインの業務にしています。
文書作成について
業務としてプロダクトのコードを書くことは無くなっていますが、採用業務でも様々なテキストを日々書いていく必要があるため、エディタに向き合う時間ということでいうとエンジニアをメイン業務にしていた時代とそこまで変わらないくらいかなという感覚です。
どういったテキストを書いているかでいうと、以下のようなものです。
- 求人票
- 各種媒体でのスカウト文
- 面接・面談のフィードバックコメント
- 各種採用企画
- 個人で使う日報的なもの
- 公式ブログ
- たまにコーディング
その他にも色々とありますが、主には日本語を中心にテキストを書いていく日々となっています。これらの文書作成するために色々なツールを試した結果 3 年ほど前から org-roam に落ちついているため、ご紹介しようと思います。
org-roam について
org-roam とは
org-roam とは何かというと、Roam RESEARCHというリンクで文書をどんどん連動させるメモサービスを Emacs の org モードで再現するプラグインです。
この形式に似たものとしては、有名なKJ 法やプロダクトではObsidianなどでしょうか。
基本的に Dropbox など使わなければローカルで org ファイルを保存するのでセキュリティ的にもあまり外に出したくない情報を便利に保存したい場合には良い選択肢かと思います。
org モードとは
ベースとなる org モードについてですが Emacs に標準で搭載されているマークアップ言語、及びその編集モードになります。
当然基本は Emacs で使用することで最大限に力を発揮するものですが、プレーンテキストなのでファイル自体は Markdown と同じようなものです。
ちなみに GitHub では Markdown の代わりに org ファイルをちゃんとレンダリングしてくれたりします。
細かい文法などは割愛しますが、Markdown と比べて以下のような特徴があります。
強力な拡張機能と表現力
テーブルは Markdown でも使えますが、org では表計算などもできるようになっています。また拡張機能を使うと org ファイル内でプログラミング言語の実行なども可能になります。他にもポモドーロタイマーや TODO 管理、スケジュール管理など様々な機能があります。
他フォーマットへのエキスポートが多彩
Markdown ではエディタに依存するエキスポートですが、LaTex や PDF、docx など様々な形式に対応しています。
基本 Emacs で取り扱うことが前提となっている
ここは一番の難所ではあるのですが、いくつか org を扱うエディタはあるのですが一番上手く使えるのは結局のところ Emacs となっています…。
(閑話休題)筆者の Emacs 環境について
org については Emacs を使わないとパワーを発揮しないのですがそもそも Emacs の設定とかどのプラグイン(ELisp)が良いかなど非常に初心者には分かりづらいなと思います。そこで自分はDoom Emacsというコンフィグフレームワーク(README に書いてた)を使っています。
これを導入すると例えば、org を便利に使いたいという場合はコンフィグファイルに
(org +brain +dragndrop +gnuplot +hugo +ipython +journal +jupyter +noter +pandoc +pomodoro +present +pretty +roam2)
という感じで 1 行設定を書いておくだけで、色々な推奨プラグインなどが自動的に導入されるものです。
またこのフレームワークが良いのは、Emacs を高度に統合された Vim キーバインドで使用できる点です(もちろん Emacs のキーバインドでも使えます)。また機能の呼び出しには、 Space
をまず押せばメニューが出てきてキーコンビネーションが表示されるので、非常に使い勝手がよいです。
VSCode のコマンドパレットのような感じですね。
設定ファイルもほぼ 1 回設定したら後はメンテが必要なく非常に使いやすいので、Emacs 導入を考えている場合は使う価値があるかと思います。
Doom Emacs で org-roam を使う
設定などは各自調べてくださいというストロングスタイルでいきますが…。自分は org-roam で日報のように使っています
Doom Emacs で Space n r d t
と押下すると今日の日付の org ファイルが保存されます。 ファイルの上部には
:PROPERTIES:
:ID: b91ca51a-39b7-4bf7-9d6a-ffef7a13218a
:END:
#+title: 2024-12-05
のように ID やタイトルが自動的に挿入されます。org-roam は sqlite3 を使ってこうしたファイルを管理しているため高速に検索などが可能になっています。
この org ファイルを開いた状態で Space m m i
と押下するとリンクの挿入ができるようになるので、ここで既存の org ファイルを選択するとその文書へのリンクが出来ます。
リンクを多数挿入していくと…
- そのファイルを呼び出している他の org ファイルを全て表示する
- マインドマップのようにファイルの関連性を示すグラフが表示できるようになる
などが可能となります。
アイディア出しで整理していくのにも便利ですし、単純にその日の日報として使い、その中でまとまった量のテキストを書くときには別 org ファイルとしてリンクするなどして自分は使っています。
全部のテキストを org-roam で管理することによって、ローカルに文書の DB が構築できるので非常に便利です。
必要性があれば org ファイル内で Space m e
と押下すると色々な形式にエクスポート(pandoc を内部で使用)するので、必要に応じてファイルを書き出して使っています。
さいごに
ざっくりと簡単にではありますが、org モードの使い勝手も相まって自分的には最強なメモ環境のご紹介でした。
org モード自体マニュアルがとんでもない量になるくらい多機能だったりします。このモードのためだけに Emacs 導入するという価値があるのでは?と個人的には感じているので、みなさんもぜひ使ってみてください。
明日は @Kurusu_imaさんです。お楽しみにー!
Discussion