WebDesigner's Memorandumウェブデザイナーの備忘録

Path Finderの「Finderで開く」が機能しないので、Keyboard Maestroで代替用マクロを作成する

Path Finderの「Finderで開く」が機能しないので、Keyboard Maestroで代替用マクロを作成する

Path Finderには、選択したファイルやフォルダを「Finderで開く」機能が存在します。
しかし、この機能が定期的に動作しなくなります。

一応Path Finderをインストールし直して、下記のターミナルコマンドを実行すると一時的に治りますが、効果がない場合もあったり、治ってもいつの間にかまた機能しなくなったり…

$ xattr /Applications/"Path Finder.app"

というわけで、Keyboard Maestroで「Path Finderで選択中のファイルをFinderで開いてくれるマクロ」を作成しました。

Keyboard MaestroPath Finderについてそもそも知らない方は、どちらも過去に記事にしているのでそちらをご覧ください。

マクロの全体像

やっていることは下記の通りです。

  1. Path Finderで選択中ファイルのパスをコピーする
  2. Finderに切り替えてパスをペーストして移動
  3. 選択していたのがフォルダだった場合は1つ上の階層に戻る

Path Finderで選択中のファイルをFinderで開いてくれるマクロ

今回のマクロはこちらからダウンロード可能です。

ぜひ使ってみたり、自由にカスタマイズしてみてください。
ここからはマクロの流れがどのようになっているかの解説です。

1. Path Finderで選択中ファイルのパスをコピーする

まずはPath Finderで選択中ファイルのパスをコピーします。

メニューの[編集]→[パスをコピー]→[UNIX]でパスのコピーができるので、「Select or Show a Menu Item」アクションでメニューを選択します。

[編集]→[パスをコピー]→[UNIX]

ちなみに、Path Finderでは色んな形式でパスのコピーができます。
[UNIX]以外の選択肢だと、どのような形式でコピーできるのか知りたい場合は、過去にまとめているのでそちらの記事をご覧ください。

これで、クリップボードに選択中ファイルのパスがコピーできました。

2. Finderに切り替えてパスをペーストして移動

次に「Activate a Specific Application」アクションを使って、Finderをアクティブにします。
その後すぐに次の動作が始まってしまうと、動作が追いつかなくなってしまう可能性があるので、「Pause Until」アクションで、Finderがアクティブになるまで待ってあげます。

Finderがアクティブになったら、今度はFinderの[移動]→[フォルダへ移動…]メニューを選択させます。

[移動]→[フォルダへ移動...]

するとパスを入力してフォルダ移動ができる画面が出てくるので、ここに先ほどコピーしたパスをペーストし、enter(return)で確定します。

これでフォルダ移動ができました。

パスをコピーで[ターミナル]ではなく[UNIX]を使う理由

余談ですが、[パスをコピー]にある選択肢の中で[UNIX]と非常によく似た形式でコピーできるのが[ターミナル]です。

[ターミナル]を選択した場合は、ほとんど[UNIX]と変わりませんが、フォルダやファイル名に半角スペースが付いていた場合に、その前に「\(バックスラッシュ)」が入るようになります。

// ↓[UNIX]の場合
/Users/saitomasakazu/Dropbox/サンプル フォルダ
// ↓[ターミナル]の場合
/Users/saitomasakazu/Dropbox/サンプル\ フォルダ

これは、ターミナルでパスを入力するときに半角スペースが入っているとそこでパスの認識が途切れてしまうため、エスケープ目的で入ります。

しかし、逆にFinderの[フォルダへ移動…]で入力するパスでは、Finder上のフォルダ名と完全一致している必要があります。
バックスラッシュが入っていると、完全一致と認識されないため、ここでは[ターミナル]ではなく[UNIX]を使っています。

3. 選択していたのがフォルダだった場合は1つ上の階層に戻る

最後は好みによってしてもしなくてもどちらでもいいのですが、フォルダを選択していた場合の挙動に関してです。

Finderの[フォルダへ移動…]で入力するパスの最後がフォルダだった場合、そのフォルダが開いた状態で表示されます。
このままでは、Path Finderを選択した状態で実行すると、Finderではそのフォルダが開いた状態で表示されてしまいます。

そのため、「If Then Else」アクションでクリップボードの中身に「.(ピリオド)」が入っていなかったらフォルダを選択すると判定し、その場合は1つ上の階層に戻るようにしています。

最後に「Delete Past Clipboard」で、クリップボードにコピーしたパスを削除して完了です。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね