[emacs] 計算機を用いたメモ術再考

2004年6月11日から、デジタルメモはemacs + Changelog形式で取ってきた。きっかけは高林哲さんのhttp://0xcc.net/unimag/1/の記事を読み、なるほどと思い、現在にいたるまでどうでもいいことから、結構役に立つことまで時系列にメモを書いている。ただ、最近はEvernoteなどマルチメディアを扱えるメモサービスなども出てきて、世の中の状況は変わってきているのでちょっと再考してみた。

まずは、Changelogの特徴から

Changelogの特徴

長所

単なるテキストファイル

Changelogは単なるtextファイルなので、その気になればメモ帳でも編集できるし、軽い。emacsを使って編集する場合には、C-x 4 aでどこからでもChangelogメモを編集することが可能。また、clmemo-modeを使用すればさらに便利に編集できたりする。

メモを同一ファイルに時系列に記述できる

超整理法のポケット1つの原則よりメモはあちらこちらに散らばらせるよりも、同一ファイルに書いたほうがよい。書いたメモを探すときには検索すればよい。同一ファイル内にメモがあるので検索は一瞬。適切なタグをつけていれば、なおさら良く、M-x occur タグ名で、タグ名に引っかかったメモ一覧が参照できる。また、ファイルが1つしかないので取り扱いも楽。
短所

独特なフォーマット

Changelog形式は独特なフォーマットを取っていて、デフォルトではメモの先頭にタブ文字が入る。先頭のタブが入ってると、コピー、ペーストする際にタブ文字のせいでレイアウトが乱れる。clmemo-modeを使用すればC-c C-yで先頭にタブ文字をつけてyank, C-c C-wでタブ文字を除いてコピーが出来るのでこの問題は回避できる。また、この独特なフォーマットのせいで長い文章を書くとインデントがくずれ、視認性が悪くなる。

textしか扱えない

工夫すれば画像も扱うことができるが面倒くさい。マルチメディアが扱えるEvernoteやwikiなどがうらやましい。

Evernoteの特徴

長所

マルチメディアを扱える

text, 写真, pdf, 音声など扱える。(有料になるとどんなファイル形式でも扱うことが可能)

  • いろいろなクライアントからメモできる

iphone、webブラウザ、windows, linux, macどこからでもメモできて、インターネットさえつながっていれば勝手にメモが同期してくれる。
短所

webサービスである

インターネットがないと、使い物にならない。また、会社などでオンラインサービスに制限がかけられている場合は使えない。

検索が遅い

macならspotlightからも検索できればemacs + Changelogに比べればかなり遅い。

いいとこどりする

Changelogにしても、Evernoteにしてもまだまだ特徴はあるだろうけどこれくらいにして、ここではどうすればそれぞれの長所を活かせるか考えてみる。ポケット1つの原則により、メモは一カ所にまとめなければならない。まとめた方が検索する際に便利だし取り扱いが楽だからである。Changelogにまとめるか、Evernoteにまとめるかだが、より多くのファイル形式を扱えるEvernoteに集めるのが良いように思う。ただし、Changelogの過去の遺産もあるし、テキストのメモ用途ならば特別なアプリケーションが必要のないChangelogの手軽さは手放せない。よって、テキストファイルは従来通りChangelog形式で取りつつ、裏でその内容をEvernoteに同期させるのがよさそうと考えた。ChangelogファイルをEvernoteに同期させるには次のような方法が考えられる。

  1. Chagelogメモを1つのノートとしてEvernoteに同期
  2. Changelogメモを1エントリづつHTML等に変換して、Evernoteに同期

前者は1つのファイルのみを同期すればよいので楽であるがChangelogメモにはwebにuploadするには躊躇する情報もあるので1つのメモすべてをuploadするのはよろしくない。よって、後者になり、Changelogファイルはchalowや、今どきならnimを用いてhtmlに変換して同期するのが良さそう。(まだ、未確認)

その他

emacs上のメモの方法もChangelogだけではなく、howmや、http://d.hatena.ne.jp/rubikitch/20090121/1232468026のようにorg-mode + remember-modeでメモを取る方法があります。
org-modeはかなり強力らしく、templeteも自由に決めれるので上で挙げたChangelogのフォーマットの問題も解決するかなぁと思ってます。また、org-rememberを使ったコードリーディングのメモの方法にも興味があるので試してみようと思っているところです。