Mac OS X Lionでemacs-evernote-modeを使う


ネット上に色々な情報はあるものの、なぜか導入にやたら苦労したのでメモを残しておきます。

Mac OS X Lion 10.7.2
emacs-evernote-mode 0.41
emacs Homebrew 23.3.1
emacs Cocoa Emacs 23.3.1
gpg 1.4.11
ruby 1.9.2p290
gdbm 1.9.1
Homebrew 0.8

公式リファレンス

1. 普段使うテキストエディタはEmacsなわけで、
2. Evernoteのエディタはなんだか残念なわけで、
3. EmacsでEvernoteのノートを編集できれば幸せ!

インストール

1. evernote-modeのダウンロード

wget -O evernote-mode-0_41.zip http://code.google.com/p/emacs-evernote-mode/downloads/detail?name=evernote-mode-0_41.zip

2. rubyとgdbmをインストール

標準のrubyではgdbmを使えないので

brew install ruby
brew install gdbm

インストールしたrubyは/usr/local/bin/rubyから参照できる筈。
(実体は/usr/local/Cellar/ruby/*/bin)

もしHomebrewによるrubyのインストール先がここ以外になっているなら以降のパスは実際にインストールされたパスに読み替えて下さい。MacPortsを使っている場合も要領は同じ筈。

3. setup.rbの実行

ダウンロードしてきたevernote-mode-0_41.zipを展開して中に入っているsetup.rbを実行

unzip evernote-mode-0_41.zip
sudo /usr/local/bin/ruby ./evernote-mode-0_41/ruby/setup.rb
  • 自分の環境ではsudoが必要でした
  • 標準のrubyでなくgdbmが使える(Homebrewでインストールした)rubyで実行すること

4. evernote-mode.elをコピー

cp ./evernote-mode-0_41/evernote-mode.el ~/.emacs.d/site-lisp/evernote-mode.el
  • コピー先は環境にあわせて
  • load-pathが通っている前提で進めます

Emacsの設定

準備が整ったのでEmacsの設定を変更してevernote-modeを使えるようにします。
init.elとか.emacsとか普段使っている設定ファイルを編集。

1. gdbmが使えるrubyへPATHを通す

(dolist (dir (list
"/usr/local/bin"
))
(when (and (file-exists-p dir) (not (member dir exec-path)))
(setenv "PATH" (concat dir ":" (getenv "PATH")))
(setq exec-path (append (list dir) exec-path))))

2. evernote-modeの設定

(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)

requireしてキーバインドを設定するだけ

使ってみる

初回起動時の動きは次のようになります

C-c ec

1. ユーザ名を聞かれる

ss1.png

2. パスワードを聞かれる

ss2.png

3. タグを聞かれる

ss3.png
タグを付けないならそのままEnterでOK

4. ノート名を聞かれる

ss4.png

5. 編集モードを聞かれる

ss5.png

テキスト編集ならTEXTのままENTERでOK。

6. ノートをEmacsで編集できる!

ss6.png

普通にC-x C-sで保存するとアップロードされます

7. Evernoteで確認してみる

ss7.png

同期できました

その他

実は、このままではEmacsを起動するたびにユーザ名とパスワードを入力しなくてはなりません。Emacsは常に立ち上げっぱなしだから問題無いと言っても、再起動をすることだってありますよね?毎回入力するのが面倒な場合は、ユーザ名とパスワードを保存するように設定を変更します。

emacs設定ファイル

(setq evernote-username "<your evernote user name>")
(setq evernote-password-cache t)

パスワードは暗号化して保存するため、gpgが必要です。

brew install gpg

これで、次回の利用時(例えばC-c ec時)にパスワードを聞かれた後

ss8.png
こんな感じのことを聞かれるのでOKを選択して

暗号化用パスを指定します
ss9.png

以降、Emacs起動後の初回利用時にパスワードを聞かれるので、指定しておいた暗号化用パスを入力することでEvernoteのユーザ名とパスワードを入力することなく利用できることになります。

結局パスワードを入力する必要があるので便利になったか微妙ですが、普通、Evernoteのパスワードは長くて強固な文字列にしていると思うので、それよりは多少短くて覚えやすいパスを設定しておけばいい、ということかな。

ちなみに、パスワードの保存先は

~/.evernote-mode/password.gpg

なので、パスフレーズがわからなくなった場合なんかはこのファイルを消してやればいいと思います。

最後に

基本的な設定を施したら、公式の最新版のマニュアルを読むのがいいと思います。
XHTMLモードの編集とか、anythingとの連携とか色々書いてありますので。

今回使ったemacsの設定ファイル

(dolist (dir (list
"/usr/local/bin"
))
(when (and (file-exists-p dir) (not (member dir exec-path)))
(setenv "PATH" (concat dir ":" (getenv "PATH")))
(setq exec-path (append (list dir) exec-path))))
(require 'evernote-mode)
;-- ユーザ名とパスワードの保存
(setq evernote-username "<your user name>")
(setq evernote-password-cache t)
(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)
  1. emacs-evernote-mode設定のため、記事参考にさせていただきました!ありがとうございます。

  2. 良かったです

  3. 参考にさせてもらいました。ありがとうございます。
    自分の環境では、エラーが出てたので
    調べてをアップしましたのでお知らせします。
    http://d.hatena.ne.jp/fujimisakari/20120213/1329119250

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>