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

Path Finderには、選択したファイルやフォルダを「Finderで開く」機能が存在します。
しかし、この機能が定期的に動作しなくなります。
一応Path Finderをインストールし直して、下記のターミナルコマンドを実行すると一時的に治りますが、効果がない場合もあったり、治ってもいつの間にかまた機能しなくなったり…
$ xattr /Applications/"Path Finder.app"というわけで、Keyboard Maestroで「Path Finderで選択中のファイルをFinderで開いてくれるマクロ」を作成しました。
Keyboard MaestroやPath Finderについてそもそも知らない方は、どちらも過去に記事にしているのでそちらをご覧ください。
マクロの全体像
やっていることは下記の通りです。
- Path Finderで選択中ファイルのパスをコピーする
- Finderに切り替えてパスをペーストして移動
- 選択していたのがフォルダだった場合は1つ上の階層に戻る

今回のマクロはこちらからダウンロード可能です。
ぜひ使ってみたり、自由にカスタマイズしてみてください。
ここからはマクロの流れがどのようになっているかの解説です。
1. Path Finderで選択中ファイルのパスをコピーする
まずはPath Finderで選択中ファイルのパスをコピーします。
メニューの[編集]→[パスをコピー]→[UNIX]でパスのコピーができるので、「Select or Show a Menu Item」アクションでメニューを選択します。
![[編集]→[パスをコピー]→[UNIX]](https://webrandum.net/mskz/wp-content/uploads/2021/03/image_3-4-e1616078718539.png)
ちなみに、Path Finderでは色んな形式でパスのコピーができます。
[UNIX]以外の選択肢だと、どのような形式でコピーできるのか知りたい場合は、過去にまとめているのでそちらの記事をご覧ください。
これで、クリップボードに選択中ファイルのパスがコピーできました。
2. Finderに切り替えてパスをペーストして移動
次に「Activate a Specific Application」アクションを使って、Finderをアクティブにします。
その後すぐに次の動作が始まってしまうと、動作が追いつかなくなってしまう可能性があるので、「Pause Until」アクションで、Finderがアクティブになるまで待ってあげます。
Finderがアクティブになったら、今度はFinderの[移動]→[フォルダへ移動…]メニューを選択させます。
![[移動]→[フォルダへ移動...]](https://webrandum.net/mskz/wp-content/uploads/2021/03/image_4-4.png)
するとパスを入力してフォルダ移動ができる画面が出てくるので、ここに先ほどコピーしたパスをペーストし、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」で、クリップボードにコピーしたパスを削除して完了です。



Finderで選択したフォルダをターミナルで開く方法まとめ
ATOKの句読点変換を無効にしているのに、変換されてしまう場合は「変換方法」を確認!
Abstractを使っている場合は、Default Folder Xの「今開いている書類のある場所をファイルダイアログで開く」をオフにする
iTerm2をホットキーで表示・非表示の切り替える方法
Brewfileを使ってMac移行時にコマンド1つで必要なアプリを全てインストールできるようにする|Homebrew Bundle
Google Chromeのタブを検索するAlfred Workflowの「Search Safari and Chrome Tabs」で、タブ移動をラクにする
Alfred 4のAppearance Optionsから外観の設定を行う
WindowsでいうところのバッチファイルをMacで作成する方法
Google Chromeの別アカウントとのブックマークを同期する「TeamSync Bookmarks」
Macで画像の一括リサイズを行いたいときは、プレビュー.appを使う方法が手軽!
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Keyboard MaestroのマクロをURLから発火する方法
CSS Nite in Kobe, vol.52「ラクして毎日30分の時短! すぐにできるMacの作業効率化入門」に登壇してきました
iStat Menusの「ディスク」アイコン表示と設定
Sketchのプラグインを管理ツールを使わずに直接フォルダで管理する方法
ATOKのキーワードチャージで、よく見るサイトで使われている単語を学習させる方法
Karabiner-Elementsでcommand単体押しで英かなキーを送信するように設定するとcommand + クリックが効かなくなる問題の修正
効率的なマークアップが出来るようになるEmmetでHTMLを書く時の基本
効率的なマークアップが出来るようになるEmmetでCSSを書く時の基本
Google Maps APIでマップの見た目をカスタマイズする方法
gzip圧縮をしてウェブサイトの表示スピードを上げる方法