WSL2 - O comando shell `code` do VSCode não funciona mais no terminal Linux

WSL2 - O comando shell `code` do VSCode não funciona mais no terminal Linux

Sou muito novo no Linux e no WSL em geral. Consegui usar code .para abrir meu diretório atual no VSCode, mas depois de deletar algo que não me lembro simplesmente não funciona mais. Eu coloquei o comando e ele simplesmente fica pendurado lá.

Excluí minha instância do Ubuntu-20.04 e a recriei, mas ainda assim não funcionará. Também verifiquei meu $PATH e parece estar lá.

Além disso, o add shell commandVSCode não aparece, então não consigo desinstalar e reinstalar o atalho do shell.

Alguem tem alguma idéia?

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

Depois de inserir o código. ele apenas fica lá

onde está e qual

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

Depois de fazer o que @NotTheDr01ds disse no tópico abaixo

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

Responder1

Acho que esse problema foi causado por uma atualização do VSCode, que aconteceu automaticamente.

Para resolver:

  1. abra VSCode no Windows

  2. abra o Explorador Remoto

    Explorador Remoto

  3. clique em uma pasta em um alvo WSL de interesse: você verá que isso causa alguma reinstalação

  4. agora você pode voltar a usar o $ code .comando de uma pasta no WSL2, como costumava fazer

Responder2

Como a resposta aceita depende de efeitos colaterais e não funcionou para mim, e a segunda é totalmente inaceitável (reinstalação completa do WSL), procurei um pouco mais e encontreiuma maneira mais segura e eficaz:

Deessepergunta mais antiga no StackOverflow, respondida porrmesquita:

No terminal WSL, digite rm -r ~/.vscode-serverpara excluir o servidor VS Code WSL.

Saia do terminal e do seu PowerShell/Cmd, execute wsl --shutdown. Então você pode fazer login novamente em seu WSL e executá-lo, code . e ele deverá funcionar normalmente.

Respondendo porque o Google me trouxe até aqui e talvez isso facilite a vida de outra pessoa =)

Responder3

Acabei de adicionar isso ao meu .bashrc:

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

Responder4

O meu funciona um pouco diferente em comparação com @cloudcreatordotio , adiciono esta linha ao meu .bashrc e as etapas mostradas abaixo:

  1. abra seu shell do Ubuntu

  2. abra o .bashrc

    nano .bashrc
    
  3. adicione a seguinte linha

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

informação relacionada