Emacs から Evernote のノートを編集できたらどれだけ便利だろう? 正にそんな EmacsLisp が開発されている。その名も evernote-mode.el。Emacs 22 以上で動作。バックエンドに Ruby (1.8.7 以上) を利用する。
本エントリーではインストール方法と簡単な使い方を紹介する。
Evernote-mode のインストール
まずは Google Code から emacs-evernote-mode プロジェクトのソースコードを入手する。ぼくは最近 Git に傾倒しているのでgit-svn を使ってソースコードを取得した。
$ cd project
$ git svn clone http://emacs-evernote-mode.googlecode.com/svn/trunk/ emacs-evernote
$ ls emacs-evernote
APACHE-LICENSE-2.0.txt doc/ evernote-mode.el ruby/
EmacsLisp のソースコードは一つだけ。主な作業は ruby でやっていて、evernote-mode.el はそのフロントエンドになっている。
まず、ruby スクリプトのインストールを行なう。
$ cd ~/project/emacs-evernote
$ cd ruby
$ sudo ruby setup.rb
次に EmacsLisp のソースコードを Emacs の load-path 上に置く。
$ cp evernote-mode.el ~/your/load/path
最後に .emacs に Evernote 用の設定を追加する。
;;
;; Evernote mode
;;
(setq evernote-enml-formatter-command '("w3m" "-dump" "-I" "UTF8" "-O" "UTF8")) ; optional
(require 'evernote-mode)
(global-set-key "\C-cec" 'evernote-create-note)
(global-set-key "\C-ceo" 'evernote-open-note)
(global-set-key "\C-ces" 'evernote-search-notes)
(global-set-key "\C-ceS" 'evernote-do-saved-search)
(global-set-key "\C-cew" 'evernote-write-note)
(global-set-key "\C-cep" 'evernote-post-region)
(global-set-key "\C-ceb" 'evernote-browser)
追加パッケージ
インストール作業が終了して、Evernote を開こうとしたら次の様なエラー・メッセージが出ることがある。
Unknown error (/usr/local/lib/site_ruby/1.8/thrift/transport/http_client_transport.rb:22:in `require': no such file to load -- net/https (LoadError))
これは、バックエンドで使っている ruby ライブラリーが足りていないために起きる。Ubuntu Linux 10.4 では、次のコマンドで足りない ruby ライブラリーを追加できる。
$ sudo apt-get install libhttpclient-ruby1.8
プロキシー
もし proxy を通さなければいけない場合は、.bashrc に次の一行を追加する。
export EN_PROXY=proxy.hoge.com:8080
簡単な使い方
C-cec (or M-x evernote-create-note) で新規の Evernote ノートを開いてみませう。
まず最初に Evernote のアカウントとパスワードを尋ねられる。
次にノートに付ける「タグ」を聞かれる。タグはカンマ区切りで複数設定可能。タグを付けたくない場合はそのまま RET。
次はノートの名前 (タイトル)。
次に Edit mode を尋ねられる。Edit mode には XHTML と TEXT の 2 種類があるけど、今回は簡単な「TEXT」を選んでみる。
以上で、Evernote のノート用のバッファーが開かれる。ファイルの保存 (C-x C-s) をすると、自動的に Evernote 側に保存される様になっている。
簡単な使い方は以上。
ヘルプ
詳しい説明は本家ページの README をどうぞ。
落ち穂拾い
- C-ceo: 既存のノートを開く
- C-cew: バッファーを Evernote の新規ノートとして保存する。ローカルで書いたファイルを、Evernote にバックアップしたい時に重宝する
- C-cep: バッファー全体ではなくリージョンを Evernote の新規ノートとして保存する
- C-cet: ノートの「タグ」を変更する (変更後 C-x C-s で保存する必要あり)
- C-cer: ノートの「名前」を変更する (変更後 C-x C-s で保存する必要あり)
Edit mode について
本エントリーでは簡単のため、TEXT モードのみの説明を行なった。Emacs-evernote-mode には TEXT モードの他に XHTML モードがある。
Evernote のノートにはリンクや太文字も書ける。これはただのテキストではない。どうやって実現しているのか? 実は Evernote のノートは ENML DTD に従う XML で書かれている。
DTD を読める人は enml2.dtd を読んでもらうとして、分からない人は HTML の簡易版と思ってもらえばいい。Emacs Evernote mode で Edit mode を「XHTML」にすると、直に ENML なテキストを編集できる。つまり、太字にしたり、リンクを張ったり、画像を貼ったりということが可能になる (多少の HTML の知識さえあれば!)
一旦、保存 (C-x C-s) すると ENML で書いたテキストが整形された上で「読み込み」専用モードになる。そこで C-x C-q してやると、「書き込み」モードに戻り、テキストの整形が解除されて再び ENML のソースコードが現れる。
ENML での編集が面倒になったら、C-cee で Edit mode を XHTML から TEXT に変更できる。逆に TEXT モードで編集後、少しノートに飾り付けをしたい場合にも C-cee で Edit mode を XHTML に変更可能。
あとがき
Emacs evernote-mode は EmacsLisp として久々に心ワクワクさせてくれる。まだ使い込んでいないので、早く使い回したい。