AppleScript Automator Mac シェルコマンド シェルスクリプト プログラミング

Finder上で開いているフォルダをVScodeとターミナルで開くAutomatorアプリ

VS codeでコーディングするときの定番作業を自動化したい

Visual Studio Code(VScode)で開発するときの定番の操作が、アプリを起動してフォルダを開くことと、ターミナルを起動することです。

これが意外と面倒なんですよね。

というわけでAutomatorでアプリを作りました。Finderのツールバーにセットして使います。

開発をしたいフォルダーをFinderで表示してツールバーのAutomatorアプリをクリックすると、そのパスがVScodeとターミナルの両方で開きます。

控えめに言ってなんでもっと早く作らなかったのかと思うくらい便利です。

Automatorの中身

Automatorは2段構成です。

1段目のAppleScriptはFinderから現在のパスを取得して、ターミナルでそのパス開きます。

取得したパスは引数として次のブロックに渡します。

2段目のシェルスクリプトは、"code"コマンドに受け取ったパスを付けてVScodeを起動します。

AppleScript部分

tell application "Finder"
	
	set current_folder to POSIX path of (target of front window as alias)
	
end tell

tell application "Terminal"
	
	activate
	do script "cd " & quoted form of current_folder
	
end tell


return current_folder

以前の記事でも使ったFinderの最前面ウインドウのパスを取得する方法を流用しています。

パスを取得するところでは、as aliasの範囲を限定するためにカッコでくくっています。くくらないとエラーになります。

ターミナルの操作にはdo scriptというコマンドを使っています。

ちなみにdo script "code " & quoted form of current_folder という行を加えてAppleScriptだけでVScodeを起動することもできます。

しかし、そうするとTerminalウインドウがふたつ開いてしまいます。

do scriptの数だけウインドウが開いてしまうようです。

実行するウインドウを指定する方法もあるのかもしれませんが、今回はシェルスクリプトでやることにしました。

「シェルスクリプトを実行」部分

/Applications/"Visual Studio Code.app"/Contents/Resources/app/bin/code $1

最初はcode $1 で済むと思っていました。

ターミナルで手打ちをすると"code"だけで起動できるのですが、Automatorの「シェルスクリプトを実行」ではコマンドが見つからないと言われてしまいます。環境変数が違うのかなぁ。

そのため、codeコマンドへのフルパスを指定しています。

パスに空白文字が含まれるのでダブルクォーテーションで囲っています。

AutomatorアプリをFinderのツールバーにセットする

使う時にはFinderのツールバーにセットします。

保存したAutomatorアプリをコマンドキーを押しながらFinderのツールバーにドラッグすると登録できます。

Automatorアプリのアイコンを変更して分かりやすくする

Automatorアイコンのままだと機能が分かりにくいのでカスタムアイコンを設定すると便利です。

今回はVScodeのアイコンをそのままコピーしました。

FinderでVScodeアプリを選択し、ファイルメニューの「情報を見る」を選択します。

ウインドウ左上のアイコンをクリックしてコピーします。

FinderでAutomatorアプリを選択し、ファイルメニューの「情報を見る」を選択します。

ウインドウ左上のアイコンをクリックしてペーストします。

ターミナルのカレントディレクトリをFinderで開く

逆に、ターミナルのカレントディレクトリをFinderで開くこともできます。

方法はめちゃくちゃ簡単です。open+ピリオド。

open .

-AppleScript, Automator, Mac, シェルコマンド, シェルスクリプト, プログラミング