我目前遇到了一个非常烦人的问题,因为我在电脑上运行了windows修复。由于某些原因,我在网上找不到我的wsl远程vscode,无法打开终端中的当前文件夹。相反,它打开vscode appdata windows文件夹(/mnt/c/Users/Jonathan/appdata/Local/Programs/Microsoft VS Code(,如下面链接的图像所示:
我当前的工作区
集成终端结果打开
我的远程设置.json文件:
{
"go.autocompleteUnimportedPackages": true,
"terminal.integrated.profiles.linux": {
"bash": {
"path": "bash",
"icon": "terminal-bash",
"cwd": "/home/jonathanr/Documents/workspace"
},
"zsh": {
"path": "zsh"
},
"fish": {
"path": "fish"
},
"tmux": {
"path": "tmux",
"icon": "terminal-tmux"
},
"pwsh": {
"path": "pwsh",
"icon": "terminal-powershell"
}
}
}
非常感谢您的帮助!
所以,我找到了解决方案。对于任何正在解决这个问题的人来说,问题(至少在我的情况下(出现在vscode运行WSL的一个环境变量中。它被称为PRE_NAMESPACE_PWD
。如果您在启用调试的情况下运行WSL(要做到这一点,只需转到WSL远程扩展设置并打开Remote WSL:Debug
选项(。你会注意到";env";选项,其中列出了所有环境变量,如果继续滚动,您会注意到两个变量:PRE_NAMESPACE_PWD
和PWD
。在这个问题中,PRE_NAMESPACE_PWD
指向的是windows vscode文件夹,而不是WSL中的当前工作区文件夹,而PWD
变量使用的是这个文件夹。总之,我刚刚导出了值为${cwd}
的PRE_NAMESPACE_PWD
变量,这是一个获取vscode中当前工作区文件夹的命令。要做到这一点,只需将此行添加到远程Settings.json文件:
"terminal.integrated.env.linux": {
"PRE_NAMESPACE_PWD": "${cwd}"
}
就是这样,现在每次你点击";用集成终端打开";您的终端将在正确的工作区目录中打开。
以前,您可以使用terminal.integrated.shell.windows在settings.json文件中的一行中设置此项,但在Visual Studio代码的更高版本中,此项已被弃用。
-
将以下JSON片段添加到Visual Studio Code 中的设置.JSON文件中
-
关闭在Visual Studio Code中打开的任何集成终端,然后打开一个新的集成终端-默认情况下,WSL现在应该打开,而不是PowerShell。
"terminal.integrated.defaultProfile.windows": "WSL", "terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "icon": "terminal-powershell" }, "Command Prompt": { "path": [ "${env:windir}\Sysnative\cmd.exe", "${env:windir}\System32\cmd.exe" ], "args": [], "icon": "terminal-cmd" }, "Git Bash": { "source": "Git Bash" }, "WSL": { "path": [ "C:\WINDOWS\System32\wsl.exe" ], "args": [], "icon": "terminal-ubuntu-wsl" } }
对我来说:
我已经添加到bashrc
:cd $OLDPWD
,并且全部工作。此外,上述解决方案对我有效。