LoginSignup
1
3

More than 5 years have passed since last update.

[Mac] Automator を使って Finder 上から直接ファイルの内容をクリップボードにコピーする

Posted at

動機

「Git で clone してきたサンプルコードをちょっとコピペして試してみたい...」 ときに、毎回エディタ上でファイルを開いてからコピーするのは面倒くさい。

なので、Mac で Finder 上から直接ファイルの内容をクリップボードにコピーする方法を調べてみた。

OSX Yosemite 10.10.5 で動作確認を行ったが、恐らく他のバージョンでも動くと思う。

方法

結論としては、Automator を使えば簡単に実現できる。

  • まず、アプリケーション ディレクトリの中の Automator (/Applications/Automator.app) を起動しよう。 以下のようなアイコンが目印。

Automatorアイコン.png

  • Automator が起動したら、新規書類を作成する。すると、以下のようなウィンドウが表示されるので、サービス を選択状態にして 選択 ボタンをクリックする。

新規書類ウィザード.png

  • Finder 上でファイルの内容をクリップボードにコピーするワークフローを作成する。ウィンドウ左側の ライブラリ から ユーティリティ を選択し、その隣のメニュー中にある シェルスクリプトを実行 という項目を、ウィンドウ右側の "ワークフローを作成するには、ここにアクションまたはファイルをドラッグしてください。" というメッセージが表示されているエリアにドラッグ&ドロップしよう。

  • 続いて、以下の設定を順番に行う。

    • "サービス"は、次の選択項目を受け取るファイルまたはフォルダ に設定する。
    • 検索対象Finder に設定する。
    • 入力の引き渡し方法引数として に設定する。
    • 実際に実行するシェルスクリプトの内容を、以下のように設定する。
cat $@ | LC_CTYPE=UTF-8 pbcopy

(ここでは LC_CTYPE=UTF-8 を指定することでロケールの文字コードを UTF-8 に設定している。Automator でシェルスクリプトを実行する際にはロケールの設定が行われていないため、このようにロケール情報を設定しておかないと日本語が文字化けした状態でコピーが行われてしまう。)

  • 以上の設定が行えたら、ファイル メニューから 保存... を選択し、このワークフローを保存しよう。

    • 保存する際、名前に日本語が含まれていると正しく認識されないようなので、名前は英語で入力するのが無難。
  • 以下にここまでの全作業を行った後の状態を示す。

    • シェルの設定が /bin/zsh になっているが、これは僕の環境のデフォルトのシェルが zsh であるだけなので、合わせる必要はない。シェルの設定を特に行っていない場合には /bin/bash などになるだろう。

完成図.png

  • これにより、Finder 上でコンテキストメニューから選択したファイルの内容を直接クリップボードにコピーすることができるようになった。

コンテキストメニュー.png

参考

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3