👶

[M1 mac] VSCodeをcodeコマンドで開きたい

2022/12/25に公開

はじめに

M1macでVSCodeを利用しています。今までローカルのフォルダをワークスペースに追加するにはGUIでポチポチしていたのですが、codeコマンドを利用してスムーズに同様の動作ができることを知ったのでこれを使えるようにしていきます。

VSCodeから設定してみる

Shift + Cmd + Pで"Shell"と入力して"Install code command in PATH"を選択します。

本来はこれだけでcodeコマンドが使えるようになるはずですが、私の環境では以下エラーが出ました。

% code
/usr/local/bin/code: line 6: python: command not found
/usr/local/bin/code: line 10: ./MacOS/Electron: No such file or directory

pythonコマンドが使えないと怒られています。
実際には端末にPythonは入っていますが、ただインストールしただけだとpythonではなくpython3としないと起動しません。

% python
zsh: command not found: python

% python3
Python 3.10.6 (main, Aug 30 2022, 04:58:14) [Clang 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

/usr/local/bin/codeからはpythonで実行するため、Pythonが起動できずに失敗しているようです。なので、このpython3pythonで起動できるようにしていきます。

Python3にシンボリックリンクをはる

まずはPythonがどこにいるか確認します。

% which python3
/opt/homebrew/bin/python3
% ls -la /opt/homebrew/bin/python3
lrwxr-xr-x  1 hoge  admin  42 Sep 26 22:43 /opt/homebrew/bin/python3 -> ../Cellar/python@3.10/3.10.6_2/bin/python3

Homebrewでインストールしたので/opt/homebrew/bin/python3が実行されており、その実体は../Cellar/python@3.10/3.10.6_2/bin/python3にいるようです。

なので以下のようにシンボリックリンクを作成します。第1引数はリンク先(実体)、第2引数はリンク元です。私はPATHの通っている/usr/local/binを指定しました。

% ln -s ../Cellar/python@3.10/3.10.6_2/bin/python3 /usr/local/bin/python

"Permission denied"と言われたのでsudoをつけて実行。これで解決!と思いきやこれでもcodeコマンドが効きません。というかpythonも"command not found"と言われてしまう。。。

しばらく悩んで"../Cellar/python@3.10/3.10.6_2/bin/python3"が相対パスだったことに気づきました。そりゃ動きませんわ。

間違えて作成してしまったリンクを消して、新しく絶対パスで指定し直します。

% unlink /usr/local/bin/python
% ln -s /opt/homebrew/Cellar/python@3.10/3.10.6_2/bin/python3 /usr/local/bin/python

これでpythonコマンドが効くようになり、codeコマンドでVSCodeが開けるようになりました。めでたし。

% python
Python 3.10.6 (main, Aug 30 2022, 04:58:14) [Clang 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

Discussion