从WSL Bash

时间:2017-04-26 16:41:26

标签: windows bash visual-studio-code windows-subsystem-for-linux

我安装了Creators更新。 WSL正在运营。我可以通过简单地调用notepad.exe来执行大多数.exe文件但是当谈到VS代码时....我不能使用默认的code命令或者调用code.exe ...我我们还试过了codecode.cmd。为什么VS Code不像其他程序那样执行?有没有办法启用code命令?

编辑:我现在收到这些错误:

  

me @ mypc:/ mnt / c / Users / me / Documents / project_folder $ code。   / mnt / c / Program Files(x86)/ Microsoft VS Code / bin / code:第7行:realpath:逗号   没找到   / mnt / c / Program Files(x86)/ Microsoft VS Code / bin / code:第14行:./ Code.exe:否    这样的文件或目录

5 个答案:

答案 0 :(得分:14)

创作者更新 安装互操作功能。但是,您似乎需要在WSL中安装realpath才能识别路径。我不确定为什么会出现这种情况,但正在运行sudo apt-get install realpath为我修复它!

编辑:更新到 Fall Creators Update 后,从WSL启动VSCode即可开箱即用

答案 1 :(得分:3)

您始终可以在WSL Bash shell中创建别名

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

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

答案 2 :(得分:2)

另一种选择是使用以下内容:

cmd.exe /c code

这也适用于 VSCodium:

cmd.exe /c codium

答案 3 :(得分:1)

警告Do not change Linux files using Windows apps and tools

通过这种方式,我最近经历了完全相同的行为。事实证明,在我第一次使用VS Code在WSL上表现不佳时,我还安装了apt的本地副本,该副本覆盖了Windows路径。

因此在WSL中,我用类似这样的内容将其删除...

$ sudo apt remove code -y; sudo apt autoremove -y

然后确认路径正确...

$ which code
/mnt/c/Program Files/Microsoft VS Code/bin/code

然后重新启动了WSL终端,一切都再次回到了编码的美好世界。 :)

注意:我想另一种选择是修复WSL中的路径,但是如果没有安装GUI软件包,它将仅在后台启动,并且永远不会出现。

答案 4 :(得分:0)

在wsl2上手动更新Ubuntu之后,我遇到了同样的问题。我通过将此功能添加到.bashrc配置文件中解决了此问题。比别名更好,因为它不会阻塞控制台。

在将其添加到配置之前,请先在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 Code。如果在初始化WSL Extensions时出现错误,请先重新安装。如果您使用的是19.04 Ubuntu,并升级到20.04,则有时需要下载该版本的初始化脚本,否则它将失败。 这应该有所帮助:)