WSL2 - команда оболочки VSCode `code` больше не работает в терминале Linux

WSL2 - команда оболочки VSCode `code` больше не работает в терминале Linux

Я совсем новичок в Linux и WSL в целом. Я смог использовать code ., чтобы открыть свой текущий каталог в VSCode, но после удаления чего-то, чего я не помню, он больше не работает. Я ввожу команду, и он просто зависает там.

Я удалил свой экземпляр Ubuntu-20.04 и создал его заново, но он все равно не работает. Также проверил $PATH, и он, кажется, там есть.

Кроме того, add shell commandв VSCode не отображается ярлык, поэтому я не могу удалить и переустановить ярлык оболочки.

Есть у кого-нибудь идеи?

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. открыть VSCode в Windows

  2. откройте удаленный проводник

    Удаленный проводник

  3. щелкните по интересующей вас папке в целевой области WSL: вы увидите, что это приведет к некоторой переустановке

  4. теперь вы можете вернуться к использованию $ code .команды из папки в WSL2, как вы это делали раньше

решение2

Поскольку принятый ответ основан на побочных эффектах и ​​не сработал у меня, а второй вариант совершенно неприемлем (полная переустановка WSL), я поискал еще немного и нашелболее безопасный и эффективный способ:

Отэтотстарый вопрос в StackOverflow, на который ответилррмескита:

В терминале WSL введите команду rm -r ~/.vscode-serverдля удаления сервера VS 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'"
    

Связанный контент