WSL2 – Der Shell-Befehl „code“ von VSCode funktioniert im Linux-Terminal nicht mehr

WSL2 – Der Shell-Befehl „code“ von VSCode funktioniert im Linux-Terminal nicht mehr

Ich bin ein Neuling in Sachen Linux und WSL. Ich konnte code .mein aktuelles Verzeichnis in VSCode öffnen, aber nachdem ich etwas gelöscht habe, an das ich mich nicht erinnere, funktioniert es einfach nicht mehr. Ich gebe den Befehl ein und es bleibt einfach hängen.

Ich habe meine Ubuntu-20.04-Instanz gelöscht und neu erstellt, aber sie funktioniert immer noch nicht. Habe auch meinen $PATH überprüft und er scheint da zu sein.

Außerdem add shell commandwird VSCode nicht angezeigt, sodass ich die Shell-Verknüpfung nicht deinstallieren und neu installieren kann.

Hat jemand eine Idee?

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

Nach der Eingabe des Codes bleibt er einfach dort

wo ist und welches

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

Nachdem ich getan habe, was @NotTheDr01ds im Thread unten gesagt hat

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

Antwort1

Ich glaube, dieses Problem wurde bei mir durch ein Update von VSCode verursacht, das automatisch erfolgte.

So lösen Sie das Problem:

  1. Öffnen Sie VSCode in Windows

  2. Öffnen Sie den Remote Explorer

    Remote-Explorer

  3. Klicken Sie auf einen Ordner in einem WSL-Ziel Ihres Interesses: Sie werden sehen, dass dies eine Neuinstallation verursacht

  4. Jetzt können Sie den Befehl wieder aus einem Ordner in WSL2 verwenden $ code ., genau wie früher

Antwort2

Da die akzeptierte Antwort auf Nebenwirkungen beruht und bei mir nicht funktioniert hat und die zweite völlig inakzeptabel ist (komplette Neuinstallation von WSL), habe ich ein bisschen weiter gesucht und gefundeneine sicherere und effektivere Methode:

AusDasältere Frage in StackOverflow, beantwortet vonAbonnieren:

Geben Sie im WSL-Terminal „ rm -r ~/.vscode-serverzum Löschen des VS Code WSL-Servers“ ein.

Beenden Sie das Terminal und führen Sie von Ihrer PowerShell/Eingabeaufforderung aus wsl --shutdown. Anschließend können Sie sich wieder bei Ihrem WSL anmelden und ausführen. code . Anschließend sollte es normal funktionieren.

Ich antworte, weil Google mich hierher geführt hat und es vielleicht jemand anderem das Leben leichter macht =)

Antwort3

Ich habe gerade dies zu meiner .bashrc hinzugefügt:

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

Antwort4

Meines funktioniert ein bisschen anders als @cloudcreatordotio. Ich füge diese Zeile zu meiner .bashrc hinzu und führe die folgenden Schritte aus:

  1. Öffnen Sie Ihre Ubuntu-Shell

  2. Öffnen Sie die .bashrc

    nano .bashrc
    
  3. Fügen Sie die folgende Zeile hinzu

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

verwandte Informationen