dre*_*mon 10 command-line windows-subsystem-for-linux 20.04
总体而言,我对 Linux 和 WSL 还很陌生。我能够使用code .
VSCode 打开当前目录,但删除了一些我不记得的内容后,它就不再工作了。我输入命令,它就挂在那里。
我已经删除了 Ubuntu-20.04 实例并重新创建了它,但它仍然无法工作。还检查了我的 $PATH,它似乎就在那里。
另外,add shell command
VSCode 中的 不出现,所以我无法卸载并重新安装 shell 快捷方式。
有人有什么想法吗?
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
Run Code Online (Sandbox Code Playgroud)
其中和哪个
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
Run Code Online (Sandbox Code Playgroud)
完成@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
Run Code Online (Sandbox Code Playgroud)
小智 7
由于接受的答案依赖于副作用,对我不起作用,而第二个答案是完全不可接受的(完全重新安装 WSL),我进行了更多搜索,找到了一种更安全有效的方法:
来自StackOverflow 中这个较旧的问题,由rrmesquita回答:
在 WSL 终端中,键入
rm -r ~/.vscode-server
以删除 VS Code WSL 服务器。退出终端并从 PowerShell/Cmd 中运行
wsl --shutdown
. 然后您可以重新登录 WSL 并运行code .
,它应该可以正常工作。
回答是因为谷歌引导我来到这里,也许这会让其他人的生活更轻松 =)
小智 6
我认为这个问题是由 VSCode 的更新引起的,该更新是自动发生的。
解决方法:
在 Windows 中打开 VSCode
打开远程资源管理器
单击感兴趣的 WSL 目标中的文件夹:您会看到这会导致一些重新安装
现在您可以返回使用$ code .
WSL2 中文件夹中的命令,就像以前一样
我刚刚将其添加到我的 .bashrc 中:
alias code='/mnt/c/Users/[YOUR USER DIR NAME]/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code'
Run Code Online (Sandbox Code Playgroud)