5.1さらうどん

@giginetの技術ブログ。ゲーム開発、iOS開発、その他いろいろ

よく使うディレクトリに瞬時にautojumpするAlfred Workflow作った

autojumpが便利

autojumpというCUIユーティリティがめっちゃ便利で良く愛用しています。

zsh使いなら効率改善のため知っておきたいAUTOJUMP - Glide Note - グライドノート

autojumpはある文字列から、それを含む一番よく使うディレクトリに自動的に移動してくれる優れもの

例えば

$ j D

などと入力すると、~/Desktopなどに一発で移動できます。

GUIで使いたい

他にjoというコマンドがあって、それを使うとGUIディレクトリを開くこともできるけど、いちいち黒い画面を立ち上げなければならないので、上手い具合にGUIでも使いたかった。

Alfred Workflow作った

Alfred App - Productivity App for Mac OS X

Alfred2の有償版には"Workflow"という仕組みがあり、自分で検索用のスクリプトを作ることができます。 というわけで、Alfredからautojumpを叩く奴を作ってみた。

giginet/alfred-autojump-workflow

基本の使い方はAlfredを立ち上げて「J <キーワード>」と入力するだけでOK!

また、候補がみつからなかったときは、データベースの上位にあるディレクトリの一覧を表示してくれる。ディレクトリ名がうろ覚えでも簡単にアクセスできてベンリベンリ。

Workflow内にautojumpを含めているので、shellでautojumpを導入していなくても使えるはず・・・・・・。(未確認)

CUI版を使っている人は、同じデータベースを共有しているので、今まで学習させた頻度データがそのまま使えます。逆にWorkflowからautojumpしても、CUIで使うのと同様に利用頻度の更新も行われるため、CUI版を使わなくても利用できるはず。

導入方法

  1. Afred2をインストールする
  2. Alfred PowerPackを買う
  3. autojump.alfredworkflowをダウンロードする
  4. ダブルクリックでインストールする

どうぞご利用ください。

Alfred Workflowの作り方

初めて作ったので見よう見まねでやってみました。

基本はスクリプトを書いて、標準出力を順次受け渡していくだけ。 普通にShellスクリプトを書いて自由に実行できる。Python, Perl, Ruby, PHPなどのスクリプトを実行することもできるので好きな言語で書けます。 一覧表示をしたり、特殊な表示方法は、決まったフォーマットのXMLで出力することで整形してくれます。

公式ではPHPスクリプトが多くて、Alfred向けのフォーマットに出力してくれるライブラリが充実している感じ。要はXMLを吐けばいいので何でも書けます。僕はPythonで書いた。

autojump.alfredworkflowは、ScriptFilterで候補を表示し、Run Scriptでopenしてるだけの簡単な実装

f:id:gigi-net:20140626113240j:plain

資料はあんまり多くないですが、公式のフォーラムや、他の人が作ったWorkflowを参考にすれば、割と自由にいろいろ作れると思います。

Workflows - Alfred v2 Support

zenorocha/alfred-workflows