如何更改远程 wsl 中的默认集成终端文件夹 vscode

How to change the default integrated terminal folder in remote wsl vscode

自从我 运行 windows 修复我的 PC 后,我目前遇到了一个非常烦人的问题。我的 wsl 遥控器 vscode 由于某种原因我无法在网上找到,无法在终端中打开当前文件夹。相反,它会打开 vscode appdata windows 文件夹(/mnt/c/Users/Jonathan/AppData/Local/Programs/Microsoft VS Code),如下面链接的图片所示:

my current workspace

open in integrated terminal result

我的远程 settings.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 选项)。您会注意到 WSL 命令中的“env”选项,其中列出了所有环境变量,如果您继续滚动,您会注意到两个变量:PRE_NAMESPACE_PWDPWD。在此问题中,PRE_NAMESPACE_PWD 指向 windows vscode 文件夹而不是 WSL 中的当前工作区文件夹,并且 PWD 变量正在使用此文件夹。总而言之,我刚刚导出了这个 PRE_NAMESPACE_PWD 变量,其值为 ${cwd},这是一个在我的 vscode 中获取当前工作区文件夹的命令。为此,只需将此行添加到您的远程 Settings.json 文件:

"terminal.integrated.env.linux": {
    "PRE_NAMESPACE_PWD": "${cwd}"
  }

就是这样,现在每次单击“使用集成终端打开”时,您的终端都会在正确的工作区目录中打开。