Copyright 2011 Yusuke Kawakami Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Emacs evernote modeはEvernoteのノートをemacsから直接参照、編集するための機能を提供します。現在このパッケージでは以下のインターフェースを提供しています。
evernote サービスにログインします。以下のコマンドはログイン時にのみ使用可能です。 ログインしていない状態で以下コマンドを実行した場合はログインプロンプトが表示されます。
evernote サービスのユーザ名を指定します。
既存のノートをemacsバッファに読み込みます。検索するタグをミニバッファで入力後、続いてノートの名前を入力します。
既存のノートをemacsバッファに読み込みます。検索するノートブックとタグをミニバッファで入力後、続いてノートの名前を入力します。
編集したノートをEvernoteサービス上で上書き保存します。
ノートを新規作成します。ノートはデフォルトのノートブックに作成されます。
ノートを新規作成します。ノートは指定されたノートブックに作成されます。
emacsバッファを新規ノートとして保存します。ノートはデフォルトのノートブックに作成されます。
emacsバッファを新規ノートとして保存します。ノートは指定されたノートブックに作成されます。
選択されたリージョンを新規ノートとしてポストします。ノートはデフォルトのノートブックに作成されます。引数なしで実行した場合は、evernote-open-noteやevernote-create-noteと異なり、新規ノートに対応するバッファは作成しませんが、\C-u等で引数を与えた場合(デフォルト引数以外を与えた場合)は、新規ノートに対応するバッファを作成し、引き続きバッファ上での編集作業を行うことができます。
選択されたリージョンを新規ノートとしてポストします。ノートは指定されたノートブックに作成されます。
ノートが属するノートブックを変更します。このコマンド発行後にevernote-save-noteを実行することでEvernoteサービス上で変更が反映されます.
ノートに付加するタグを変更します。このコマンド発行後にevernote-save-noteを実行することでEvernoteサービス上で変更が反映されます.
ノートの編集モードを変更します.詳細は Evernote note edit mode を参照して下さい.このコマンド発行後にevernote-save-noteを実行することでEvernoteサービス上で変更が反映されます.
ノートを名前を変更します。このコマンド発行後evernote-save-noteを実行することでEvernoteサービス上で変更が反映されます。
ノートを削除します。
ミニバッファから入力されたクエリを使ってノートを検索します。クエリの例は Search Query Examples を参照して下さい。
Evernoteの「保存された検索」を使ってノートを検索します。
ノートブックを新規作成します。
指定されたノートブックの名前とデフォルトノートブックか否かを設定します。
クエリに名前をつけて保存し、以後「保存された検索」として参照できるようにします。
既存の「保存された検索」の名前とクエリを変更します。
バッファに読み込まれたノートの読み込み専用,書込み可能状態を切り替えます。XHTMLモードのノートを読み込み専用にした場合、evernote-enml-formatter-command変数に設定されたコマンドを使ってXHTMLをフォーマットして表示します。詳細は Evernote note edit mode を参照して下さい
XHTMLモードのノートを読み込んだ際、もしくは書き込み可能から読み込み専用に状態を切り替えた場合に、XHTMLを整形して表示するためのコマンドを指定します。現在整形コマンドとしてw3mを使用することができます。
Evernote Browser を開きます。Evernote Browser はタグ一覧や、保れされた検索の一覧、過去に検索したノートの一覧からノートを開くための機能を提供します。詳細はEvernote Browser を参照して下さい。
Anything(http://www.emacswiki.org/emacs/Anything) からタイトルからノートの選択候補を表示する機能を提供する変数です。 詳細は Collaboration with Anything を参照して下さい。
Anything を使ってタイトルからノートを開きます。
非 nil の場合に evernote-mode 用のメニューをメニューバー上に表示します。(デフォルト: t)
非 nil の場合にパスワードのキャッシュを有効にします。 有効にする時は、EasyPG(http://epg.sourceforge.jp/)を使って暗号化することを推奨します。EasyPG は Emacs 23 以降には含まれています。Emacs 22 では EasyPG をインストールし、.emacs に以下を記述してください。
(require 'epa-setup)gpg-agent を使うことで安全にパスワードをキャッシュできます。
evernote-create-note,evernote-write-note,evernote-post-regionで新規ノートを作成する際にはノートに付加するタグを指定することができます. また、コマンド使用時にタグ・ノート名を入力する際にはミニバッファでの補完が行われます。
ノートを開いているバッファには evernote-modeマイナーモードが適用されます。以下のコマンドはevernote-modeマイナーモードでのみ有効です。
EvernoteのノートはENML DTD(http://xml.evernote.com/pub/enml2.dtd)に準拠するXML文書です。evernote-modeではこのXMLをemacsで保存、読み込みを行う為ににXHTMLモードとTEXTモード2種類の編集モードを用意しています。
XHTMLモードでノートを保存した場合、バッファの内容がそのままノートの内容として保存されます。バッファ内容がENML DTDに沿ったフォーマットでない場合はエラーになります。
XHTMLモードでノートを読み込んだ場合、初期状態としてバッファは読み込み専用になります。この際、変数evernote-enml-formatter-commandが設定されている場合は、バッファには整形された内容が表示されます。(evernote-enml-formatter-comandの設定については Install and Settings を参照して下さい) evernote-toggle-read-onlyコマンドを実行して編集の為に書き込み可能にした場合は、整形されない状態のXMLが表示されます。書き込み可能から読み込み専用に再度変更すると、再びバッファには整形された内容が表示されます。
Emacs バッファ ----------------------------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> <en-note>EvernoteのノートはENML DTDに準<br clear="none"/> 拠するXML文書です。evernote-modeではこのXMLをemacsで扱うためにXHTMLモー<br clear="none"/> ドとTEXTモード2種類の編集モードを用意しています。<br clear="none"/> </en-note> ----------------------------------- | |XHTMLモードで保存 V Evernoteサービス上のノート(Emacsバッファの内容と同じ) ----------------------------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> <en-note>EvernoteのノートはENML DTDに準<br clear="none"/> 拠するXML文書です。evernote-modeではこのXMLをemacsで扱うためにXHTMLモー<br clear="none"/> ドとTEXTモード2種類の編集モードを用意しています。<br clear="none"/> </en-note> ----------------------------------- | |XHTMLモードで読み込み V Emacs バッファ (読み込み専用となり、整形されて表示される) ----------------------------------- EvernoteのノートはENML DTDに準 拠するXML文書です。evernote-modeではこのXMLをemacsで扱うためにXHTMLモー ドとTEXTモード2種類の編集モードを用意しています。 ----------------------------------- | |書き込み可能状態にする(evernote-toggle-read-only: \C-x\C-q) V Emacs バッファ (整形されないXMLが表示される) ----------------------------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> <en-note>EvernoteのノートはENML DTDに準<br clear="none"/> 拠するXML文書です。evernote-modeではこのXMLをemacsで扱うためにXHTMLモー<br clear="none"/> ドとTEXTモード2種類の編集モードを用意しています。<br clear="none"/> </en-note> -----------------------------------
XHTMLモードでは、ノートを編集する際にXHTMLをテキストとして編集する必要があり、作業が煩雑になります。そこでevernote-modeではテキストのみ含むEvernoteノートを効率よく作成、編集するための TEXTモードを提供しています。
TEXTモードはテキストのみ含むEvernoteノートの編集に特化したモードです。TEXTモードでノートを保存した場合、バッファ中のXMLの特殊文字(&キーワード\;, スペース、改行)はエスケープされ、ルート要素を付加した上でENMLに変換されます。このため、emacsバッファで表示されている内容がノートの見た目上の内容として保存されます。また、TEXTモードでノートを読み込んだ場合は、XMLのルート要素直下をテキストとして解釈し、XMLの特殊文字はアンエスケープされた上でバッファに読み込まれます。
Emacs バッファ ----------------------------------- EvernoteのノートはENML DTDに準 拠するXML文書です。evernote-modeではこのXMLをemacsで扱うためにXHTMLモー ドとTEXTモード2種類の編集モードを用意しています。 ----------------------------------- | |TEXTモードで保存 V Evernoteサービス上のノート (Emacsバッファの内容がエスケープされ, XMLに変換される) ----------------------------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd"> <en-note>EvernoteのノートはENML DTDに準<br clear="none"/> 拠するXML文書です。evernote-modeではこのXMLをemacsで扱うためにXHTMLモー<br clear="none"/> ドとTEXTモード2種類の編集モードを用意しています。<br clear="none"/> </en-note> ----------------------------------- | |TEXTモードで読み込み V Emacs バッファ (ノートのルート要素以下の内容がアンエスケープされる) ----------------------------------- EvernoteのノートはENML DTDに準 拠するXML文書です。evernote-modeではこのXMLをemacsで扱うためにXHTMLモー ドとTEXTモード2種類の編集モードを用意しています。 -----------------------------------
上記XHTML, TEXTモードはノートの作成時に選択できます。ノート保存時には編集モード情報も保存され、次に読み込まれる際には保存時の編集モードで読み込まれます。また、他のEvernoteアプリケーションで作成されたノートはXHTMLモードとして読み込まれます。
既存のノートのXHTML,TEXTモードを切り替える場合は、evernote-change-edit-modeコマンドを使用します。XHTMLモードからTEXTモードの切り替えにおいて、バッファが読み込み専用状態の場合、整形された内容がTEXTモードでのノートの内容になります。この際元のXHTMLのフォーマット情報(XML tag)は全て失われるので注意して下さい。書き込み可能状態でモードを切り替えた場合は、整形されていない元のXHTMLがTEXTモード表示されるノートの内容になります。
ノートの検索に使用できるクエリの例を示します。
以下の例は http://www.evernote.com/about/developer/api/evernote-api.htm#_Toc277181479 からの引用です。
chicken tag:cooking created:year
tag:cooking -tag:mexican beef -carrots
notebook:Travel intitle:"San Francisco"
any: "San Francisco" tag:SFO
Evernote Browser はタグ一覧や、保存された検索の一覧、過去に検索したノートの一覧からノートを開くための機能を提供します。これらの一覧はevernote-open-noteコマンドやevernote-search-notesコマンドで補完に使われるノート一覧と異なり、ユーザにより削除されるまでバッファ上に保持されます。この一覧は繰り返し使用することができるため、ノートを開く手順を簡略化することができます。
Evernote Browserは複数のEvernote Browserページ(バッファ)から構成されます。Evernote Browserページは、ノートの検索を行った際、もしくは検索を一度も行っていない状態でevernote-browserコマンドを実行した際に作られます。ページはリストとして管理され、現在有効なカレントページと各ページ間に前後関係を持ちます。 Evernote Browser のカレントページに移動するにはevernote-browser コマンドを実行して下さい。また、ページの移動には後述するページ移動キーを使用して下さい。
各 Evernote Browser ページには以下の種類があります。
タグ一覧ページにはユーザがEvernoteサービス上で作成したタグ一覧が階層的に表示されます。タグ名の上で Enter(\C-m) を押すことで、そのタグが付加されたノートの一覧ページが開きます。
保存された検索一覧ページにはユーザがEvernoteサービス上で作成した「保存された検索」の一覧が表示されます。保存された検索の名前上でEnter(\C-m)を押すことで保存された検索を実行し、結果をノート一覧ページとして開きます。
ノート一覧ページは検索により取得したノートの一覧を表示します。ノート一覧ページは evernote-open-note コマンド、 evernote-search-notes コマンドや、Evernote Browser での検索が行われる度に新たに作成されます。ノート名上でEnter(\C-m)を押すことでノートを開きます。
ノートブック一覧ページにはユーザがEvernoteサービス上で作成したノートブックの一覧が表示されます。ノートブック名の上でEnter(\C-m)を押すことで、そのノートブックに属するノートの一覧ページが開きます。
Evernote Browser ページ上でのその他のキーアサインは以下の通りです。
キー | 動作 |
---|---|
b | 前のページに移動します |
f | 次のページに移動します |
t | タグ一覧ページを作成し、表示します。既にタグ一覧ページがある場合はそのページに移動します |
S | 保存された検索一覧ページを作成し、表示します。既に保存された検索一覧ページがある場合はそのページに移動します |
s | 入力された検索クエリから結果を新規ノート一覧ページとして作成し、そのページを表示します |
N | ノートブック一覧ページを作成し、表示します。既にノートブック一覧ページがある場合はそのページに移動します |
o | Enter(\C-m) と同じですが、ノート一覧ページの場合は、開いたノートにカーソルを移動しません |
n | 次の行に移動します。ノート一覧ページの場合は移動したカーソル上のノートを開きます |
p | 前の行に移動します。ノート一覧ページの場合は移動したカーソル上のノートを開きます |
d | 現在のページを Evernote Browser から削除します |
Emacs 23.1 以降を使用している場合、emacs のブックマークを evernote のノートに対して設定することができます。 この機能により頻繁に参照する evernote ノートをより容易に開くことができます。
ブックマークの使用方法は通常のファイルを扱う場合と同じです。 bookmark-set (C-x r m RET) をノートを開いているバッファで実行することでブックマークを登録します。 また、登録されたブックマークは bookmark-jump (C-x r b bookmark RET) や list-bookmark (C-x r l) で参照できます。
cd evernote-mode/ruby ruby setup.rb
cp evernote-mode.el <your load path>
(add-to-list 'load-path "<your load path>") (require 'evernote-mode) (setq evernote-username "<your evernote user name>") ; optional: you can use this username as default. (setq evernote-enml-formatter-command '("w3m" "-dump" "-I" "UTF8" "-O" "UTF8")) ; optional (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-enml-formatter-commandが設定されていない場合はXHTMLモードでの読み込み時に整形されてない状態のXMLが表示されます。
上記に加え、 ruby の cygwin を使用している場合は、cygwin-mount.el (http://www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el) が必要になります。cygwin-mount.el を取得し、以下を .emacs に追加して下さい。
(require 'cygwin-mount) (cygwin-mount-activate)
プロキシを使用する場合は環境変数EN_PROXYに 'プロキシホスト':'ポート'を指定して下さい。(ex. export EN_PROXY=proxy.hoge.com:8080)
evernote-mode は Anything(http://www.emacswiki.org/emacs/Anything) で evernote のノート名から選択候補を表示する機能 (anything-c-source) を提供します。 .emacs に以下の設定を追記することで、anything の選択候補に evernote のノート名を加えます。
(add-to-list 'anything-sources anything-c-source-evernote-title)
また、Anything を使って Evernote のノート名のみから選択を行いたい場合は、 anything-evernote-title を使用できます。
上記 Anything との協調機能は evernote にログインした状態でのみ (evernote-login, もしくは evernote-xxx コマンドを最初に実行した後) 使用することができます。
ディストリビューションの設定によっては ruby が使用できる GDBM ライブラリがインストールされてない場合があります。 上記が表示される場合は libgdbm-ruby 等をインストールして下さい。
apt-get install libgdbm-ruby
Porting Libraries to Win32 から gdbm.dll を入手し、ruby.exe と同じフォルダに置いて下さい。
Mac OS X に付属の ruby には GDBM バインディングが含まれていません。 MacPorts や Homebrew で ruby と GDBM をインストールしてください。
MacPorts の場合
$ sudo ports install ruby gdbm
Homebrew の場合
$ sudo brew install ruby gdbm
また、evernote-ruby-command を設定 してください。
ディストリビューションの設定によっては ruby が使用できる openssl ライブラリがインストールされてない場合があります。 上記が表示される場合は libopenssl-ruby をインストールして下さい。
apt-get install libopenssl-ruby
OS に複数のバージョンの ruby がインストールされている場合に、evernote-mode をインストールした ruby (ruby setup.rb を実行した ruby) と異なる ruby が使われている可能性があります。 evernote-mode をロードする前に、evernote-ruby-command に正しい ruby をフルパスで指定してください。
e.g.
(setq evernote-ruby-command "/your/path/to/ruby") (require 'evernote-mode)
Date: 2011-06-18 09:23:14 JST
HTML generated by org-mode 6.21b in emacs 23