それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Evernote で選択中ノートを全て指定したノートに移動する

Evernote のノートをまとめて移動したい

Evernoteのノートが増えてくると、検索結果をまとめて別のノートに移動したいとか。そういう事が増えてくる

それも「キーボードショートカット」で!

キーボードショートカットを作るには?

Mac でキーボードショートカットを作る方法を知って無くてはならない。

Macでは⌘キーは、メニューの各項目(コマンド)を実行する、と考える。つまり、キーボードショートカットを「作る」には「メニュー項目を追加する」という作業になる。メニュー項目は「サービス」として追加できる。アプリ(:またはファイル)ごとに好きな「サービス」を追加することが出来る。

サービスの追加場所

サービスの追加場所はここになる。ここに好きなサービスを作って放り込む

~/Library/Services/

サービスの作成方法

サービスの作成方法はAutomator.appを使うのが楽でいいっすね。

Evernoteにサービスメニューを追加する。

  1. AutomatorでWorkflowを新規作成し
  2. 対象アプリをEvernoteにする。
  3. そしてやりたいことを記述。
  4. 最後に~/Library/Services に保存する。

キーボードショートカットを追加

キーボードショートカットをPreferenceで追加する。

Evernoteで選択したノートを移動させるスクリプト

Automatorで、AppleScript(language:JS)を実行すると、選択したノートを指定した場所に移動することができる。

わたしは、利便性を考慮、つまりテストのしやすさと扱いやすさを考えて、すべてのサービスをシェルコマンドで作成し、Automatorではシェルコマンドを実行するようにしている。

#!/usr/bin/osascript -l JavaScript -i
ObjC.import('stdlib')  
//コマンドライン引数を取る
function run( argv ){
  if( argv.length < 1 ){
    console.log("引数が必要")
    $.exit(1)
    } 
    move_selected_note_to(argv[0])
  $.exit(0)
}

//Evernote で選択中ノートを全て指定したノートに移動する
function move_selected_note_to( notebook_name ) {

  var app = Application("Evernote");
  var notebook = app.notebooks[notebook_name];
  var selected = app.selection();

  selected.forEach( function(e){
    e.move({to:notebook});
  } )

}