かすみん日記

暇なときに何か喋ります

FinderのコンテキストメニューからVisual Studio Codeを開けるようにする【Mac】

Finderでファイルorフォルダを選択して右クリックで表示されるコンテキストメニューに「Visual Studio Codeで開く」項目を追加します。

環境

概要

Automaterアプリでコンテキストメニュー項目を作成し、シェルスクリプトvscodeを起動する。

手順は下記記事と同様。

qiita.com

手順

Automater.appを起動する。

cmd + spaceで表示される窓から検索すれば良い。

作成する書類の種類は「クイックアクション」を選択。

左サイドの「ライブラリ」から「ユーティリティ」を選択して、「シェルスクリプトの実行」を右側の領域へドラッグアンドドロップする。

右側の領域で設定を色々弄る。

  • ワークフローが受け取る現在の項目:「ファイルまたはフォルダ」
  • 検索対象:「Finder.app」
  • 入力の引き渡し方法:「引数として」

最後に、実行するシェルスクリプトを以下のように変更:

open -a "Visual Studio Code" "$@"

cmd + Sで変更内容を保存する。

クイックアクションの名前は、例えば「Visual Studio Codeで開く」とする。

この名前がコンテキストメニューに表示される項目名となる。

作業は以上で終わり。

これで、Finderで適当なファイルやフォルダ(複数でもOK)を選択、右クリックで表示されるコンテキストメニューの「クイックアクション」の中に、今作成した項目「Visual Studio Codeで開く」が追加されていることが確認できる。

また、「システム環境設定」>「拡張機能」>「Finder」にも作成した項目が追加されている。

補足

以下補足です。

保存されるファイルの場所

今回Automater.appで作成した書類は、以下ディレクトリに.workflowという拡張子で保存される。

/Users/<username>/Library/Services

コンテキストメニュー項目を表示する場所

「クイックアクション」の中じゃなくて、最上階に表示してくれた方がうれしいのだが、その方法はわからない。多分無理なのでは。

シェルスクリプト解説

open -a "Visual Studio Code" "$@"

open -aコマンドは、引数で指定した名前のアプリを起動するコマンド。

おそらく/Applicationsディレクトリにある.appファイルの名前を指定すれば良い。

$@vscodeコマンドラインから起動する時に与える引数。

この引数は、Finderで選択しているファイルやフォルダが与えられる。

$@というシェルの特殊変数は、引数で与えられた複数の変数を、それぞれ別々の変数として解釈される。

つまり、hoge1.txthoge2.txtを選択して「Visual Studio Codeで開く」押下時に実行されるシェルスクリプトは、以下のようになる。

open -a "Visual Studio Code" "hoge1.txt" "hoge2.txt"

参考記事では$@を展開するためにfor文を回しているが、おそらく不要。

また、vscodeコマンドラインから起動するコマンドcodeをインストールしているなら、実行するシェルスクリプトは以下でもOK。

code "$@"

短くなっただけ。

以上