Evernote に素早く追記するための環境作り – Windows 編

Evernote に仕事の資料からライフログまで色々ため込んでいるのですが、ライフログの追記は頻度が高いため毎回 Evernote を開いて編集するのが結構大変でした。

特に Windows のクライアントは重く、作業中に閲覧しているサイトの URL をライフログとしてメモる際にネックでした。「ささっと書いてすぐ作業に戻りたい!」と思っているのに、クライアントを開くのが大変というのはストレス。

そこで、特定のノートに「ぱっと追記してすぐ終わって戻れる」という環境を作りました。試行錯誤して、Mac と Windows でそれぞれ環境を作ったので書いておきます。

長くなりそうなので、Windows 編、Mac 編に分けてみます。

目次

Evernote クライアントを一発で開けるようにしよう

使用頻度がかなり高いので、どのソフトを使っているときでも一発で Evernote クライアントを開けるようにしました。

  • その1. デスクトップにショートカットを作成して行う方法(簡単)
  • その2. AHK を使って指定する方法(AHK 好きならば)

この 2 つの方法を試したので両方書いておきます。

その1. デスクトップにショートカットを作成して行う方法


デスクトップに Evernote のショートカットを作成して、


Evernote のショートカットのプロパティを開き、ショートカットキーを設定。この場合だと、Ctrl+Shift+E で Evernote クライアントが起動します。

その2. AHK を使って指定する方法

しばらく使っているうちに、デスクトップに Evernote のショートカットアイコンを置いたままにしなくてはいけないのは嫌だなーと思ってきたので、AHK でショートカットを設定することに。

AHK = AutoHotkey です。AHK の詳細は長くなるので書きませんが、ショートカットキー(ホットキー)の設定などが簡単にできるスクリプトエンジンです。窓使いの憂鬱などと似た類いのものです。私は AutoHotkey_L を使ってます。簡単にコンパイルできるので、exe 化も楽々です。興味がありましたらこちらもどうぞ->ahk | 検索結果: | Numb.

;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; Evernote [Ctrl]+[Shift]+[e]
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
^+e::Run, C:\Program Files (x86)\Evernote\Evernote\Evernote.exe

こんなかんじに記述すると、Ctrl+Shift+e で Evernote クライアントを起動できるようになります。ベンリ。

Evernote の Window をよしなに閉じる

都度起動では重く不便なので、終了はしないで欲しいところ。

しかし Evernote の終了ショートカット Ctrl+Q ではクライアントがきっちり終了してしまいます。試してみたところ、何パターンかウィンドウを閉じた場合の動作があることが分かりました。

  • Ctrl+q :クライアントが終了する。
  • Alt+F4 :ウィンドウが閉じてタスクバーからも消えるが、通知領域(タスクトレイ)には残る。
  • Alt+Space -> n :ウィンドウが最小化するだけ。タスクバーと通知領域に残る。


参考:タスクバー


参考:通知領域(タスクトレイ)

Alt+F4 での動作が好きだなーと思ったので、それを AHK でショートカット設定。ついでに Ctrl+r で同期もできるようにしました。

; Evernote
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#IfWinActive ahk_class ENMainFrame

; [Ctrl]+[w]でウィンドウを閉じる(ALT+F4)
^w::Send,!{F4}

; [Ctrl]+[r]で同期
^r::Send,{F9}

#IfWinActive                    ;ウィンドウの限定を解除

全ての場所でこのショートカットが効いてしまっては困るので、Evernote クライアントだったらこうするよ、という形で指定。具体的には、Evernote ウィンドウの ahk_class を調べて、#IfWinActive のところで「もし Evernote のウィンドウだったらこの内容で動作させる」としています。

ただショートカットを AHK で置き換えてるだけですが、これで、Ctrl+w でウィンドウを閉じ、Ctrl+r で同期をすることができるようになりました。手慣れたショートカットで使えるようになって満足です!

Fastnote を使ってみる

「やっぱり Evernote のクライアントは重いことが多いなーライフログにはもう少し軽い方が…」などと思っていたところ、Fastnote.exe を知りました。

“Evernoteへ超絶簡単にメモできる”Windows用ソフト「Fastnote」バージョンアップしました。 – valinstの日記

指定したノートブックにさくさく追記するのに向いており、使ってみたところ便利だったの使い続けることに。
ただいくつか使い勝手で気になる点も。

  • Fastnote はオンライン上にデータを送るので、ローカルの Evernote クライアントで変更した内容が同期前だとコンフリクトを起こす。
  • 記入エリアに「すべて選択」のショートカット Ctrl+a がない。結構使うショートカットなので使えた方がいい。
  • Firefox + KeySnail で「ページタイトル “改行” URL」を取得・整形してペーストすることが多いのだが、メモ帳や Evernote クライアントに貼り付けた場合きちんと改行されるのに、Fastnote だと改行が消えてしまう。

コンフリクト対策 – 起動時

まず、コンフリクトに関しては Fastnote を起動した時点で Evernote を同期させて、Fastnote から Send した後にまた Evernote を同期させることで防ぐことに。

;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; Fastnote [Ctrl]+[Shift]+[f]
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
^+f::
Run, D:\tool\Fastnote\Fastnote.exe
Run, C:\Program Files (x86)\Evernote\Evernote\ENScriptSyncDatabase.lnk
Return

起動のほうから。Ctrl+Shift+f を押したら、1 つめの Run で Fastnote を起動して、2 つめの Run で Evernote を同期させるように指定。Fastnote.exe などのパスは適宜自分の環境に変更してください。

同期の部分は Evernote のインストールディレクトリにある ENScript.exe を利用しています。そのまま使うとコマンドプロンプトが表示されて邪魔だったので、ENScript.exe のショートカットを作成して適当に ENScriptSyncDatabase と名付け、これを呼び出すようにしています。

せっかくショートカットを作ったので、同期用専用のショートカットにしてしまえということで引数もここに指定。ショートカットのプロパティを開いて「リンク先」の最後に「 syncDatabase」を追加し、「実行時の大きさ」を「最小化」にしておきます。

残りは全て「Fastnote のウィンドウだったら…」という処理なので、ソースはまとめて書きます。

; Fastnote
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#IfWinActive ahk_class WindowsForms10.Window.8.app.0.2bf8098_r15_ad1

; [Ctrl]+[w]でウィンドウを閉じる(ALT+F4)
^w::Send,!{F4}

; [Ctrl]+[a]ですべてを選択
^a::
Send,+{F10}^{a}
Return

; [Ctrl]+[r]と[Ctrl]+[Enter]で同期
^r::Run,C:\Program Files (x86)\Evernote\Evernote\ENScriptSyncDatabase.lnk
^Enter::
Sleep, 200
Send, ^{Enter}
Sleep, 2000
Run,C:\Program Files (x86)\Evernote\Evernote\ENScriptSyncDatabase.lnk
Return

; [Ctrl]+[v]で\nの改行をちゃんと
^v::
comment=%Clipboard%

IfInString,clipboard,%Clipboard%,{
	StringReplace, clipboard, clipboard, http://, `r`nhttp://, All
}
IfInString,clipboard,%Clipboard%,{
	StringReplace, clipboard, clipboard, https://, `r`nhttps://, All
}
ClipWait
Send,+{Insert}
Clipboard=%comment%
Return

#IfWinActive                    ;ウィンドウの限定を解除

ついでに Fastnote も Ctrl+W で閉じることができるよう指定してあります。

コンフリクト対策 – 終了時(+α)

Fastnote で Send したら、Send の処理が終わった頃に Evernote の同期処理をします。
Fastnote の Send のショートカット Ctrl+Enter でこれらの処理を行うように指定。

Ctrl+Enter が押されてすぐに処理をしてしまうと Fastnote 起動時の同期がまだ終わっていない可能性もあるので、Ctrl+Enter が押されても 200 くらいは止めておいて、その後 Ctrl+Enter を Fastnote 側に送って、Fastnote の処理を待つ意味で 2000 くらい止めておいて、最後に同期するために ENScriptSyncDatabase.lnk を呼ぶことに。

記入エリアで「すべて選択」を使いたい

記入エリアで Ctrl+a を使うのは、ちょっと強引にコンテキストメニュー -> 全て選択を押した、という形をショートカットにすることに。

Firefox + KeySnail で \n として入れた改行がペーストすると消える

改行が消えてしまうのは、おそらく「\n」がちゃんと改行に認識されてないんだろうなーと予想。他のメモ帳などから改行ありでコピーしたものを貼り付けた場合には改行が生きるので、改行自体ができないわけではない。どう処理して良いか迷ったので、とりあえず http:// か https:// があったら直前に強制で改行コードを入れるようにすることに。力業ですが一応事足りるのでヨシとします。

スマートではないなーと思うので、もうちょっと良い方法があれば是非教えてください!

終わり

Evernote も Fastnote もショートカットで一発起動でき、さくさく閉じることもできるようになり大分楽に。Fastnote 起動時と送信時に必ず同期処理が入るので、コンフリクトも起きなくなりました:) 同期処理がちょっと多いかなとも思うのですが、連投するわけではないならコンフリクトすることを気にして使うより強制で同期を入れちゃうほうがいいかなーと思っています。

色々設定しておくと、やっぱり便利ですね。Mac でも同様にごにょごにょやったので(とは言っても Mac はそんなにたいしたことしてないんですが)、それは次回。

追記—スクリーンキャストを撮ってみました。こんな感じでぱぱっとメモ追記できるよ!的な…音声なしです。

選択したノートが更新されていても、一度違うノートを選択しないと表示が変わらないので動画内では違うノートをいったん選択したりしています。

ページのタイトルと URL を送っている部分は、Firefox を選択した状態で yy をしてタイトルと URL をコピーし、Ctrl+Shift+f でFastnote を出して Ctrl+v で貼り付け、Ctrl+Enter で送信、としてます。