Windows 从WSL Bash启动VS代码

Windows 从WSL Bash启动VS代码,windows,bash,visual-studio-code,windows-subsystem-for-linux,Windows,Bash,Visual Studio Code,Windows Subsystem For Linux,我已经安装了创建者更新。WSL正在运行。我只需调用notepad.exe就可以执行大多数.exe文件,但当涉及到VS代码时。。。。我无法使用默认的code命令或调用code.exe。。。我也试过code和code.cmd。为什么VS代码不像其他程序那样执行?有没有办法启用code命令 编辑:我现在得到以下错误: me@mypc:/mnt/c/Users/me/Documents/project\u文件夹$code。 /mnt/c/Program Files(x86)/Microsoft VS-C

我已经安装了创建者更新。WSL正在运行。我只需调用
notepad.exe
就可以执行大多数.exe文件,但当涉及到VS代码时。。。。我无法使用默认的
code
命令或调用
code.exe
。。。我也试过
code
code.cmd
。为什么VS代码不像其他程序那样执行?有没有办法启用
code
命令

编辑:我现在得到以下错误:

me@mypc:/mnt/c/Users/me/Documents/project\u文件夹$code。 /mnt/c/Program Files(x86)/Microsoft VS-Code/bin/Code:line 7:realpath:逗号 未找到nd /mnt/c/Program Files(x86)/Microsoft VS-Code/bin/Code:line 14:./Code.exe:No 这样的文件或目录

创建者更新没有安装互操作功能。但是,您似乎需要在WSL中安装
realpath
,以便识别路径。我不知道为什么会出现这种情况,但运行
sudo apt get install realpath
为我修复了它


编辑:在更新到Fall Creators更新后,从WSL启动VSCode即用即用您始终可以在WSL Bash shell中创建别名

alias code="/mnt/c/Program\ Files/Microsoft\ VS\ Code/Code.exe"

如果将其添加到.bashrc或.zshrc文件中,则当您启动环境的新实例时,它将始终可用。

警告

更新:上述内容与当前版本或更新版本无关

有了这些,我最近经历了完全相同的行为。事实证明,在我用VS代码对WSL进行的noobish第一次攻击中,我还安装了一个来自apt的本机副本,该副本重写了Windows路径

所以在《华尔街日报》中,我用这样的东西删除了它

$sudo apt删除代码-y;sudo-apt自动记忆-y
然后确认路径是正确的

$哪个代码
/mnt/c/Program Files/Microsoft VS Code/bin/Code
然后重新启动WSL终端,一切都很好,再次进入了精彩的编码世界。:)


注意:我想另一个选项是修复WSL中的路径,但是如果没有安装GUI包,它将在后台启动,并且无论如何都不会出现。

在wsl2上手动更新Ubuntu后,我遇到了同样的问题。我通过将此函数添加到
.bashrc
配置文件中解决了这个问题。它是比alias更好的解决方案,因为它不会阻塞控制台

在将其添加到配置之前,请在bash中测试函数,并根据需要调整路径。当然,您必须将{username}更改为您的Windows帐户用户名

function code () { /mnt/c/Users/{username}/AppData/Local/Programs/Microsoft\ VS\ Code/Code.exe; }
如果需要,请将其添加到配置脚本中,例如
.bashrc
.zshrc
。这里有一个这样做的脚本

echo "function code () {
  /mnt/c/Users/{username}/AppData/Local/Programs/Microsoft\ VS\ Code/Code.exe \"\$@\"; 
}" >> ~/.bashrc
source ~/.bashrc
code .
尽管我的建议是备份并从Microsoft Store安装新的发行版,然后使用Remote-WSL扩展打开VS代码。如果初始化WSL扩展时出现错误,请首先重新安装它。如果您使用19.04 Ubuntu并升级到20.04,有时需要下载该版本的初始化脚本,否则会失败。
这应该会有帮助:)

另一种选择是使用以下选项:

cmd.exe /c code
这也适用于VSCodium:

cmd.exe /c codium

如果您遇到类似问题,并且正在使用zsh,这可能会对其他人有所帮助。错误:
-bash:/mnt/c/Program:没有这样的文件或目录
您是否正确地转义了“程序文件”中的空间?是的,我正在以与您完全相同的方式逃离路径中的空格,但这似乎不起作用…代码的Linux二进制文件位于VS代码的安装目录中的。\bin中。这对我很有用:
function code(){/mnt/c/Program\Files/Microsoft\VS\code/bin/code“$@”}
在将任何文件或文件夹传递到工作区时,不要忘记“$@”。