CrossRoad

XRを中心とした技術ブログ。 Check also "English" category.

zshシェルのMacにPATHを通してVisual Studio Codeをcodeコマンドから実行する方法

小ネタですが、Babylon.js EditorからVisual Studio Codeを開くときに少しはまったので書いておきます。

環境 Mac OS 12.4
Visual Studio Code 1.68.0
シェルはzsh

1. Babylon.js EditorではworkspaceをVisual Studio Codeで開くことができる

最近使っているBabylon.js EditorではFile > Open Visual Studio Code を選ぶことで、現在開発しているworkspaceの内容を開くことができます。 (workspaceとはUnityでいうProjectのことです)

これを実施しなくてもVisual Studio Codeを開いて、Open folderで選んでも同じことは実現できますが、Babylon.js Editorの中から開けるのは便利です。

Open VSCode from Babylon.js Editor v4.3.0

2. Babylon.js Editorから開くためには、Visual Studio Codeをコマンドラインから起動できる必要がある

Windowsの場合の公式ドキュメントの記述が見つからなかったのですが、codeというコマンドを使うことでコマンドラインからVisual Studio Codeを起動できます。
VS Code を code コマンドで起動できるようにする|まくろぐ

Running Visual Studio Code on macOS

Babylon.js Editorでは、codeコマンドを使って現在のworkspaceを開くことができます。

しかし、使っているPCの中でcodeのPATHが通っていないとエラーが出ます。

Failed to launch VS code on Babylon.js Editor v4.3.0

Failed to open Visual Studio Code. Please ensure the command named "code" is available in the "PATH" environment. You can add the command by opening VSCode, type "Command or Control + Shift + P" and find the command "Shell Command : Install code in PATH".

3. codeをPATHに入れる方法が公開されているが、Macではすぐに使えなかった

codeコマンドをPATHに入れる方法はいくつか紹介されています。

VS Code を code コマンドで起動できるようにする|まくろぐ

【Visual Studio Code】コマンドからVS Codeを起動できない場合 (Mac編) - Qiita

基本的には、これらの記事で紹介されているように、Visual Studio CodeでShift+Cmd+Pを入力し、”Shell Command:”と入力したら出てくる"Shell Command: Install 'code' command in PATH"を選択すればよいのですが、Macのzshシェルだからなのか、何か自分の環境依存なのか、この方法だけではcode not foundが解決しませんでした。

なお、zshシェルについては、Appleの公式ドキュメントに記載があります。

zsh (Z シェル) は、macOS Catalina 以降で新規作成されるすべてのユーザアカウントのデフォルトシェルです。
bash は、macOS Mojave 以前のデフォルトのシェルです。
zsh は Bourne シェル (sh) との互換性が高く、bash とも若干の違いはあるものの、互換性があると言って差し支えありません。
zsh について、また、そのコマンドライン補完システムについて調べるには、ターミナルで「man zsh」と入力してください。

引用元:zsh を Mac のデフォルトシェルとして使う - Apple サポート (日本)

4. .zshrcにPATHを記載してからShell commandを実行したらcodeが使えるようになった

こちらの記事の【対処方法その2】の方法、およびStackOverFlowのコメント欄を参考にして解決できました。
【Visual Studio Code】コマンドからVS Codeを起動できない場合 (Mac編) - Qiita

nginx - env: bash: No such file or directory - Stack Overflow

zshシェルを使っているので、.zshrcにcodeのPATHを通します。

$ cd
$ touch ~/.zshrc
$ open ~/.zshrc

これでテキストエディタが開くのでこのように入力します。

export PATH="\$PATH:/usr/local/bin:/Applications/Visual Studio Code.app/Contents/Resources/app/bin:$PATH"

入力が終わったら、.zshrcを実行します。

$ source ~/.zshrc

念のため、Visual Studio Code で”Shell Command:”と入力したら出てくる"Shell Command: Install 'code' command in PATH"も実行しておきます。

MacのターミナルやVisual Studio CodeのTerminalでcodeと入力してcommand not foundにならなければ成功です。

5. Tips:Finderで隠しファイル、フォルダを表示する方法

私の場合、検証中に.zshrcに変な入力をしてしまい、envとかopenなどの基本的なコマンドが使えなくなってしまいました。そういうときは、.zshrcをFinderから右クリックして開くしかないのですが、Macでは通常隠しファイルが見えません。

Finderでcommand + shift + .(コマンド + シフト + ピリオド)を同時押しすると、隠しファイルも見えるようになります。
こちらを参考にさせていただきました。
Finderで隠しファイル、隠しフォルダの表示/非表示

6. おわりに

今回はBabylon.js Editorの場合でしたが、PATHに記載してcodeコマンドで起動はほかにもありそうなので書きました。何かの役に立てば幸いです。