WSL2 - VSCode のシェル コマンド `code` が Linux ターミナルで動作しなくなりました

WSL2 - VSCode のシェル コマンド `code` が Linux ターミナルで動作しなくなりました

私は Linux と WSL 全般について非常に初心者です。VSCode で現在のディレクトリを開くために使用できましたcode .が、覚えのない何かを削除した後は機能しなくなりました。コマンドを入力しても、そのままハングします。

Ubuntu-20.04 インスタンスを削除して再作成しましたが、まだ動作しません。また、$PATH を確認しましたが、そこにあるようです。

また、add shell commandVSCode では が表示されないので、シェルのショートカットをアンインストールして再インストールすることができません。

誰か何か考えがありますか?

drewbie@drewbie:/$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/mnt/c/Program Files/dotnet/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/:/mnt/c/Program Files (x86)/QuickTime/QTSystem/:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files/Go/bin:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/ProgramData/DockerDesktop/version-bin:/mnt/c/Users/Andrew/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Program Files/heroku/bin:/mnt/c/Users/Andrew/AppData/Local/GitHubDesktop/bin:/mnt/c/Users/Andrew/go/bin:/snap/bin

コードを入力した後、そのまま放置される

どこにあるか、どれか

drewbie@drewbie:~$ whereis code
code: /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code.cmd
drewbie@drewbie:~$ which code
/mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code

@NotTheDr01dsが以下のスレッドで言ったことを実行した後

drewbie@drewbie:~$ vi "$(which code)"
drewbie@drewbie:~$ code .
+ [  = true ]
+ COMMIT=899d46d82c4c95423fb7e10e68eba52050e30ba3
+ APP_NAME=code
+ QUALITY=stable
+ NAME=Code
+ DATAFOLDER=.vscode
+ realpath /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code
+ dirname /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin/code
+ dirname /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/bin
+ VSCODE_PATH=/mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code
+ ELECTRON=/mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/Code.exe
+ IN_WSL=false
+ [ -n Ubuntu-20.04 ]
+ IN_WSL=true
+ [ true = true ]
+ export WSLENV=ELECTRON_RUN_AS_NODE/w:WT_SESSION::WT_PROFILE_ID
+ wslpath -m /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js
+ CLI=C:/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js
+ WSL_EXT_ID=ms-vscode-remote.remote-wsl
+ ELECTRON_RUN_AS_NODE=1 /mnt/c/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/Code.exe C:/Users/Andrew/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js --ms-enable-electron-run-as-node --locate-extension ms-vscode-remote.remote-wsl

答え1

この問題は、自動的に行われた VSCode の更新によって発生したものだと思います。

解決するには:

  1. WindowsでVSCodeを開く

  2. リモートエクスプローラーを開く

    リモートエクスプローラー

  3. 興味のあるWSLターゲットのフォルダをクリックします。これにより再インストールが発生することがわかります。

  4. $ code .これで、以前と同じようにWSL2のフォルダーからコマンドを使用できるようになりました。

答え2

受け入れられた答えは副作用に依存しており、私にはうまくいきませんでした。そして2番目の答えはまったく受け入れられないもの(WSLの完全な再インストール)なので、もう少し検索してより安全で効果的な方法:

からこれStackOverflowの古い質問、回答者メスキータ:

WSL ターミナル内で、rm -r ~/.vscode-serverVS Code WSL サーバーを削除するように入力します。

ターミナルを終了し、PowerShell/Cmd から を実行しますwsl --shutdown。その後、WSL に再度ログインして実行するcode . と、正常に動作するはずです。

Google が私をここに導いたので回答します。これにより、他の誰かの生活が楽になるかもしれません =)

答え3

これを .bashrc に追加しました:

alias code='/mnt/c/Users/[YOUR USER DIR NAME]/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code'

答え4

私のやり方は @cloudcreatordotio とは少し異なります。.bashrc に次の行を追加し、手順を以下に示しています。

  1. Ubuntuシェルを開く

  2. .bashrcを開く

    nano .bashrc
    
  3. 次の行を追加します

    alias code="'/mnt/c/Users/[YOUR USER DIR NAME]/AppData/Local/Programs/Microsoft VS Code/Code.exe'"
    

関連情報