Emacs Advent Calender 2014 の 14 日目の記事です。
皆さん、普段 TODO リストを作成したり、PC でメモをとるために何を使っていますか?
- Windows 標準のメモ帳や付箋機能を使っている人
- Terapad やサクラエディタ、Vim などのエディタを使っている人
- Microsoft Word を使っている人
- Google カレンダーや Toodledo など Web 上のツールを使っている人
- 手書きでノートに書いたりディスプレイにたくさんの付箋を貼り付けている人
それぞれ様々な方法で TODO リストを作成したりメモをとったりしていると思います。
ここで私に1つ提案させてください。
「TODO リストとメモ書きにだけ Emacs を使ってみませんか?」
なぜ Emacs を使うのか
TODO リストとメモ書きにだけ Emacs を使用する理由、それは文書を書くことに特化したツール「org-mode」が標準搭載しているからです。
org-mode は非常に多機能なツールです。ツリー構造の文書や TODO リストを編集する機能に留まらず、予定表の作成や HTML・LaTeX といった別の形式へのエクスポート、更にはテキストファイルで表を書き、そこで表計算をするといったことまでできます。
非常に多機能な org-mode ですが、ツリー構造の文書の構文は非常にシンプルだということも魅力の 1 つです。見出しならアスタリスク、リストならハイフンを行頭に付けるだけなど、非常に覚えやすく入力が簡単な文法です。
また、org-mode は様々な形式に変換できます。HTML や LaTeX を始め、Qiita で採用されている Markdown 形式も対応しています。また、少し面倒ではありますが、変換ルールを記述すれば好きな形式の文書に出力することもできます。
自分で書き溜めたメモを誰かに見せるときに HTML に変換できたり、学生であれば面倒な LaTeX の構文ではなく記述しやすい org-mode の構文で論文も書けてしまいます。
Emacs はプログラミングなどに使用されているイメージだと思いますが、org-mode 専用機として使うのもアリだと私は思います。
記事の対象読者
本記事は org-mode を触ったことがない人を対象にしています。以下のような方々には、ぜひこの記事を読んでもらいたいです。
- パソコン上にメモや todo リストを作成している人、作成したい人
- Emacs に少しでも興味がある人
- プログラミングなどで Emacs を使っているが org-mode は使っていない人
- プログラミングを Vim でバリバリやっているけど,メモや todo リストを書く方法はいまいち定着していない人
本記事の内容は全 OS に対応しています。Emacs のインストールはこの記事の範囲外ですが、Windows でのインストール方法については記事の最後のほうに [おまけ] として載せているので参考にしてください。Linux なら apt-get や yum でどうぞ。
なお、普段から org-mode バリバリ使っているよ! という人には、本記事では何ら情報を提供できません。明日のアドベントカレンダーの記事をお楽しみに!
基本事項
- C-c は Ctrl キーを押しながら c を押すという意味です (M は Alt キー、S は Shift キー)
- org-mode は最近のアップデート (Version 8.0) 前後で挙動や設定が大きく変わりますが、本記事はその両方に対応しています
- スクショでは [おまけ] の方法でインストールした Windows の Emacs 24.3 を使用しています
- org-mode は拡張子が .org のファイルを Emacs で開くと使用できます
- 拡張子 .txt ではありませんが、中身はただのテキストファイルなのでメモ帳などでも開けます
Emacs で TODO リストやメモを作成する
本記事の読者に到達してほしい目標を 3 段階に分けました。
- TODO リストを作成する
- メモをとる
- メモを HTML に変換する
Emacs を初めて使う人は、しばらくは第 1 段階の Todo リストとしてのみ使用してみるのがいいと思います。一度にたくさんのことを覚えてツールを活用するのは難しいので。
とりあえず org-mode で TODO リストを作成してみる
まずは Emacs で todo.org というファイルを開いてください。やり方がわからなければ、どこか適当なところに todo.org というテキストファイルを作って、Emacs にドラッグ&ドロップすれば OK です。
ではまず「* これからやること」と入力しましょう。次に S-Right (Shift を押しながら矢印キーの右) を入力してください。
アスタリスクの後ろに TODO の文字が付きましたね。おめでとうございます! TODO が 1 つ作成できました!
基本的には TODO と付いたこの 1 行が 1 つの TODO に該当します。つまり todo.org にはこのような行をたくさん記述していくことになります。
(ちなみに、S-Right を入力せず、自分で「* TODO これからやること」と記述しても TODO として認識されます)
TODO が完了したら、同じ行でもう一度 S-Right を入力してみてください。TODO が DONE に変わります。TODO が終了したら DONE に変えていきましょう。S-Left でまた TODO に戻すこともできます。
一度に複数の TODO リストを作成したい場合は、M-S-Enter が便利です。「* TODO」の文字を次の行に挿入できます。
また、M-Up/M-Down で TODO を並び換えができます。タスクの順番が変わったなどに便利です。
もっと便利な機能はありますが (開始日や〆切を設定したり、複数のファイルに分かれている TODO を集約したり…)、これだけでも使うことができれば Windows のメモ帳よりも十分便利でしょう。
TODO リストの使い方をまとめます。
- これだけは絶対覚えてほしい
- TODO は「* TODO タスク名」と各行に記述
- S-Left, S-Right で TODO と DONE の切り替え
- これも覚えると便利
- M-S-Enter で次の TODO を作成
- M-Up, M-Down で TODO の並び換え
これだけなら簡単でしょ?
org-mode でメモをとる
ここでは HTML や Markdown のように、構造化された文章を記述する構文のうち、メモをとるのに便利な簡単な構文だけ紹介します。紹介するのは以下の 4 つ。
- タイトル
- 見出し
- リスト
- テーブル
これだけ覚えると、以下のようなテキストファイルが作成できます。
Emacs で開くと自動で色が付くので、普通のテキストファイルより見やすいですよね。また、Org-mode が複数のリストやテーブルを書く補助をしてくれるので、同じテキストファイルを普通のテキストエディタより簡単に書けます。
このファイルは Emacs で色が付くといってもただのテキストファイルなので、どんな環境でも見ることができます。Word がなくても開けますし、メールでスマホに直接送ったりもできますよ。
タイトル
先頭行に「#+TITLE: タイトル」を記述するだけです。
見出し
見出しは「* 見出し」と記述します。そうです。TODO と一緒です。実は TODO は見出しだったんですね。
本文は見出し以下の行に普通に記述すれば OK です。
見出しはレベルを指定できます。「** サブ見出し」「*** サブサブ見出し」のようにアスタリスクを増やして見出しレベルを下げます。
リスト
「- 項目」と記述します。
1 つ項目を記述した後であれば、M-Enter で次のリストを記述できます。
また、M-Up, M-Down でリストの並び換え、M-Left, M-Right でリストの階層を変更できます。
表
org-mode では普通のテキストファイルで簡単に表を書く機能を搭載しています。表の区切りは「|」です。
とりあえず、表の 1 行目を | で区切って書いてみましょう。
1 行書き終わって TAB キーを入力すると、
なんと次の行が自動作成されます! 便利ですね。
セルを埋めてまた TAB キーを入力すると、
次のセルに移動して、しかも整形までしてくれます! org-mode すごいですね! (ちなみに整形されなくても最後に一気に整形できるので、その場合は気にせずセルを埋めていきましょう)
最後の列のセルを書いた後に TAB を押すと、
さらに次の行を作成できます。このように TAB キーでどんどん表を埋めていきましょう。
また、表の中で「|-」とだけ入力して TAB キーを入力すると、
テーブルにボーダーを入れることもできます。見出しと項目を分離できて見やすいですね。
表を最後まで書き切ってずれていることがあれば、表の上で C-c を 2 回連続で入力してください。一気に整形できます。
作成したメモを HTML に出力してみる
さて、とったメモを他の人に見せたい、そんな時どうしましょう。テキストファイルなのでそのまま送ってもいいのですが、Emacs 以外では色付きで見られません。
そんなときは HTML に出力するのがいいでしょう。これなら、ブラウザを使えば誰でも (ほぼ) 同じように見えます。
HTML に出力する方法は簡単です。出力したい .org ファイルを開いた状態で、まずは C-c C-e と入力しましょう。するとこんな画面になると思います (Org 8.0 以降だと画面が少し違います)。
この状態で h を選択すれば、それだけで HTML ファイルに出力できます (Org 8.0 以降なら h を 2 回入力)。
org-mode なら、あの面倒な HTML のタグを書かずに HTML を書ける! 素晴らしい!
ちなみに、css を全く設定していないのですごくそっけない HTML になってしまっていますが、css を設定すればこんな HTML にもできます (css は Org-mode による HTML 文書作成入門 から借りてきました)。
org-mode でメモをとるメリット
他にも PC でメモを取る方法なんていくらでもあると思いますが、あえて org-mode でメモを取るメリットはなんでしょうか。
まず、上でも述べましたが、ただのテキストファイルというのは非常に便利です。どんな端末のどんな OS でも、テキストファイルであればほぼ間違いなく標準ツールで見ることができます。ファイルサイズが小さいのもメリットですよね。
org-mode は書式が覚えやすく記述が簡単というのも大きなメリットです。HTML や LaTeX を書くのが面倒なら、org-mode で書いて変換してしまうという選択もできます。私は Qiita を投稿するときも、org-mode で書いて Markdown 形式に変換してたりします。
また、自由に他の形式に変換できるので、どんなマークアップ言語を書く場合でもとりあえず org-mode で書けばどうにかなるという安心感がありますし、自分でそういうルールを作っておけば org-mode 以外の構文を覚えておく必要がなくなります。
メモのとりかたを統一する、普段から同じツールを使い続けるというのは非常に大きな資産を築きます。「あれ?見出しってどの記号使うんだったっけ」と検索する無駄な時間がなくなります。毎日その構文で文章を書いているので忘れるわけがないのです。
org-mode についてもっと知りたい
org-mode の使い方などについてオススメのサイトを紹介します。なお、そもそも Emacs の使い方がよくわからないけど勉強してみたい、という人には Emacs 実践入門 をオススメしておきます。いい本ですよ。
org-mode の構文を覚えきれていなかった頃によくお世話になりました。覚えておきたい org-mode の構文がよくまとまっています。あと、ページ末尾のリンクからページのソースがダウンロードできるのですが、この css は今でもお世話になってます。
org-mode の使い方がまとまっています。org-mode の表計算についてわかりやすく日本語で説明している貴重なサイトです。
公式のマニュアルの和訳です。ちょっとバージョンは古いですが十分役に立ちます。英語が読めるなら、最新版に対応した 公式のマニュアル をどうぞ。
自分が書いた記事で恐縮ではありますが、紹介しておきます。org-mode で論文を書いたときの知識を残したものです。
org-modeとopen-junk-fileで始める快適メモ生活
Emacs Advent Calendar 2014 の 10日目の記事です。org-mode と open-junk-file の組み合わせは私も頻繁に使ってます。
[おまけ] Windows に Emacs をインストールする
とりあえず Emacs を使うだけなら http://sourceforge.jp/projects/gnupack/downloads/46675/emacs-24.3-20130503.exe/ をダウンロードして実行し、解凍されたフォルダの bin/runemacs.exe を起動すればいいでしょう。本記事のスクショもこの Emacs のものです。
また、過去に WindowsでEmacsをセットアップ の記事を書いているので、興味があればご覧ください。
あとがき
私自身は文章を書くときは常に org-mode を使っています。メモも todo もメールも、日本語の文章であればとりあえず org-mode で書きます。学生時代の卒論・修論も全て org-mode (の文書を LaTeX に変換) で書きました。
Emacs Advent Calender 2014 の 14 日目は、そんな org-mode 大好きな私が、この偉大なツールを布教するためだけの記事でした。この記事で org-mode に興味を持ってくれる人が少しでも増えることを願います。
明日は @yuttie さんです。内容は「自作の Elisp について」とのこと。楽しみですね!!