Cursorエディタを入れ際にVSコードの「code .」が使えなくならないような対処法
当記事で実現したいこと
Cursorエディタをインストール後、PCを再起動すると
cursor .
で、Cursorエディタが起動できるようになる。
それは、OKなのだが、
code .
で、VSコードが起動できなくなる
code .
でも、
Cursorエディタが起動してしまう
そうじゃなくて、
★★★★★★★★★★★★★★★★★★★★★
「cursor .」はCursorエディタ起動
「code .」はVSコード起動
を両立させたいので、そうなるようにしたい。
★★★
それを、「 WSL2 」と、「 Git Bash 」と、「 PowerShell 」の3つについて、
そうしたい。そのやり方は、当記事をみれば、さっさと解決できる
★★★
★★★★★★★★★★★★★★★★★★★★★
それを実現したい
経緯
Curosrエディタを入れるとVSコードの「code .」が効かなくなるトラブルがある
の記事参照
Curosrエディタをインストールする前に、現時点のVSコードを指しているcodeコマンドのありかを、まず、メモっておこう。
「 WSL2 」と、「 Git Bash 」と、「 PowerShell 」の3つについて、
VSコードのcodeコマンドのありかのパスをメモっておく
別に、3つメモらなくても、どれか1個あれば、他は
なんとかなるけど
3つとも微妙にパスの表記が異なるため、メンドイと思うので
メモっておいたら、あとで、codeコマンドがVSコードに向くように
設定する時に楽である。
1つ目)
WSL2のターミナル上でVSコードのcodeコマンドのパスを取得しメモっておこう
$ which code
/mnt/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin/code
2つ目)
Git Bashのターミナル上でVSコードのcodeコマンドのパスを取得しメモっておこう
$ which code
/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin/code
3つ目)
PowerShellでVSコードのcodeコマンドのパスを取得しメモっておこう
下記で複数個所に、
C:\Users\myUser\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd
が表示される
このパスをメモっておく
> gcm code | fl
Name : code.cmd
CommandType : Application
Definition : C:\Users\myUser\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd
Extension : .cmd
Path : C:\Users\myUser\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd
FileVersionInfo : File: C:\Users\myUser\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd
InternalName:
OriginalFilename:
FileVersion:
FileDescription:
Product:
ProductVersion:
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language:
★★ おそらく、「myUser」のところを自分の文字列に変更した感じになってると思う ★★
Cursorエディタをインストールする
Windows版のCursorでよい。(WSL2でも使えるから)
2023年8月22日以降の「Cursor 0.8.4」以降のバージョンでは、
Cursorエディタは、Windows版をインストールしても、
Ubuntu(WSL2)で「cursor .」をした場合は、直接、ext4のファイルシステムを見て動作してくれる
Windows版のVSコードの場合は、Remote WSL2の拡張プラグラインがあれば、
WSL2で「code .」で起動時、ext4のファイルを直で見るように動作する
Windows版のCursorエディタは、プラグインなしでも、
WSL2で「cursor .」で起動時、ext4のファイルを直で見るように動作する
( Cursorエディタでは、Remote WSL2は機能しないが、そもそも、要らない。 )
したがって、WSL2用にLinux版のCursorエディタをインストールする必要性はない。
また、別の理由でも、Linux版のCursorエディタは必要ない。
WSL2の描画システムと、Linux版のCursorエディタで必要な描画システムの相性がよくなく
Linux版のCursorエディタはやめたほうがよい。
WSL2で起動時、ext4のファイルシステムを直接見るのだから
Windows版のCursorエディタのインストールでよい。
Cursorエディタをインストール後、PCを再起動すると
Ubuntu(WSL2)や、Git Bashのターミナルより
cursor .
で、Cursorエディタが起動できるようになる。
それは、OKなのだが、
code .
で、VSコードが起動できなくなる
code .
でも、
Cursorエディタが起動してしまう
codeがcursorの内部で作られた他のものが、他に作られて、
それが環境変数PATHでより優先的に値設定がされるのが原因のようである。
code .
では、VSコードを起動したいので、そのように戻したい
つまり、
★★★★★★★★★★★★★★★★★★★★★
「cursor .」はCursorエディタ起動
「code .」はVSコード起動
を両立させたいので、そうなるようにしたい。
★★★★★★★★★★★★★★★★★★★★★
そのために、まずは、
Cursorエディタをインストール後、PCを再起動した後の状況で、
cursorコマンドのありかを取得し、メモっておく
1つ目)
WSL2のターミナル上でVSコードのcursorコマンドのパスを取得しメモっておこう
$ which cursor
/mnt/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin/cursor
2つ目)
Git Bashのターミナル上でVSコードのcursorコマンドのパスを取得しメモっておこう
$ which cursor
/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin/cursor
3つ目)
PowerShellでVSコードのcodeコマンドのパスを取得しメモっておこう
下記で複数回表示される
c:\Users\myUser\AppData\Local\Programs\cursor\resources\app\bin\cursor.cmd
のパスをメモっておく
> gcm cursor | fl
Name : cursor.cmd
CommandType : Application
Definition : c:\Users\myUser\AppData\Local\Programs\cursor\resources\app\bin\cursor.cmd
Extension : .cmd
Path : c:\Users\myUser\AppData\Local\Programs\cursor\resources\app\bin\cursor.cmd
FileVersionInfo : File: c:\Users\myUser\AppData\Local\Programs\cursor\resources\app\bin\cursor.cmd
InternalName:
OriginalFilename:
FileVersion:
FileDescription:
Product:
ProductVersion:
Debug: False
Patched: False
PreRelease: False
PrivateBuild: False
SpecialBuild: False
Language:
★★ おそらく、「myUser」のところを自分の文字列に変更した感じになってると思う ★★
WSL2環境での「code .」を元のVSコード起動に復元する。
Cursorエディタをインストール前に取得した
VSコードのcodeコマンドのありか
WSL2のパス
/mnt/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin/code
および、
Cursorエディタをインストール後に取得した
Cursorエディタのcursorコマンドのありか
WSL2のパス
/mnt/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin/cursor
上記について、
/mnt/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin/code
の
/mnt/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin
の部分
また、
/mnt/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin/cursor
の
/mnt/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin
の部分
それらを用いた下記のコードを
~/.profile
などのログインプロセスのシェルの末尾に下記のコードを追加する
# Remove VS Code and cursor from PATH if they exist
PATH=$(echo "$PATH" | sed -e 's|:/mnt/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin||g')
PATH=$(echo "$PATH" | sed -e 's|:/mnt/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin||g')
# Add VS Code to PATH
PATH="$PATH:/mnt/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin"
# Add cursor after VS Code
PATH="$PATH:/mnt/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin"
export PATH
上記のコードは、PATHの中での優先順位を変更している
/mnt/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin
/mnt/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin
の優先順位になってしまっているのを
これらを、一旦、PATH変数から削除して
再度、
/mnt/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin
/mnt/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin
の順番で追加しなおす
こうすることで、「code .」を打ち込んだ時に
/mnt/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin
にあるVSコードの「code .」を見てくれるようにする
ためのコードである。
source ~/.profile
もしくは、
WSL2を一回、exitして再度、起動しログインしなおしで
cursor .
で、cursorエディタ起動
code .
で、VSコード起動
の両方ができるようになることを確認する
また、
which code
で、Cursorエディタインストール前に取得したのと同じパスが表示されるのも
あわせて確認しておく
「Git bash」での「code .」を元のVSコード起動に復元する。
その1)
Cursorエディタをインストール前に取得した
VSコードのcodeコマンドのありか
Git bashのパス
/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin/code
その2)
Cursorエディタをインストール後に取得した
Cursorエディタのcursorコマンドのありか
Git bashのパス
/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin/cursor
上記の
/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin/code
の
/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin
の部分
および、
/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin/cursor
の
/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin
の部分
を利用した下記のコードを
~/.bash_profile
に追記する
( ~/.bash_profile がなければ、新たに作る )
# Remove VS Code and cursor from PATH if they exist
PATH=$(echo "$PATH" | sed -e 's|:/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin||g')
PATH=$(echo "$PATH" | sed -e 's|:/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin||g')
# Add VS Code to PATH
PATH="$PATH:/c/Users/myUser/AppData/Local/Programs/Microsoft VS Code/bin"
# Add cursor after VS Code
PATH="$PATH:/c/Users/myUser/AppData/Local/Programs/cursor/resources/app/bin"
export PATH
source ~/.bash_profile
または、
Git Bashの窓を閉じて、開きなおしをした後に、
Git Bash環境にて
cursor .
で、Cursorエディタが起動する。
code .
で、VSコードが起動する。
また、
which code
で、Cursorエディタをインストール前のパスが表示されるかも確認する。
「PowerShell」での「code .」を元のVSコード起動に復元する。
まず、
powershellのターミナルを起動後、
echo $PROFILE
をすると、
C:\Users\myUser\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
などのパスが表示される
このパスのファイルがあれば、
powershellのターミナルを起動時に実行される
notepad $PROFILE
を打ち込むと、
上記のファイルが開く、もし、未だ、なければ
作成するか、聞かれるので、「はい」を押す
上記のファイルについて、メモ帳が開く
そこに、
Cursorエディタをインストール前に取得した
VSコードのcodeコマンドのありか
Windowsのパス
C:\Users\myUser\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd
を利用した下記のコードを追記し保存する。
Remove-Item alias:code -ErrorAction SilentlyContinue
function code {
& ("C:\Users\myUser\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd") @args
}
codeという名前で関数定義をしている
powershellのターミナルを起動時、この関数が定義される。
code .
で、VSコードが開くようになる。
ただし、
powershellのターミナルを起動時、上記、コードが実行された結果
エラーがターミナルに表示されることがある。
*.ps1のスクリプト実行の権限がないときである。
そのときは、
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
を打ち込む。
CurrentUserのScopeに対するExecutionPolicyの変更は、
管理者権限がなくても、実行できる
結果は、レジストリに書き込まれ、次回以降有効になってる
他にも、やり方はあるようだが、どうやら
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
の方法が、セキュリティリスクを低く抑えて、
*.ps1を起動できるようにするやり方のようだ。
powershellのターミナルを閉じて、再度、開きなおすと
今度は、エラーがでないと思うです
cursor .
で、cursorエディタ起動
code .
で、VSコード起動
の両方ができるようになることを確認する
また、
gcm code | fl
で、Cursorエディタインストール前に取得したのと同じパスが表示されるのも
あわせて確認しておく
実際には、下記のようになると思います。
> gcm code | fl
Name : code
CommandType : Function
Definition :
& ("C:\Users\myUser\AppData\Local\Programs\Microsoft VS Code\bin\code.cmd") @args
Discussion