【问题标题】:How to change the default integrated terminal folder in remote wsl vscode如何更改远程wsl vscode中的默认集成终端文件夹
【发布时间】:2023-01-17 21:30:51
【问题描述】:

自从我在 PC 上运行 Windows 修复后,我目前遇到了一个非常烦人的问题。由于某种原因我无法在网上找到我的 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"
    }
  }
}

非常感谢您的帮助!

【问题讨论】:

    标签: visual-studio-code windows-subsystem-for-linux wsl-2


    【解决方案1】:

    所以,事实证明我找到了解决方案。对于正在努力解决这个问题的任何人来说,问题出在(至少在我的情况下)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}"
      }
    

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

    【讨论】:

    • 很高兴首先知道为什么会发生这种情况。刚刚发生过这种情况,但昨天一切都很好。它只是突然拿错了目录。但是在处理这个问题之前,我在 WSL 上的代码也有问题(关于缺少代理的事情)。可能是粗糙的边缘,因为我在内部程序中,但不知道我是否可以复制它来报告它。尽管如此,还是感谢您的解决方案。
    【解决方案2】:

    对我来说:

    我已经添加到 bashrc: cd $OLDPWD 并且都有效。另外,上面的解决方案对我有用。

    【讨论】:

      猜你喜欢
      • 2016-01-30
      • 2017-11-10
      • 2019-08-22
      • 1970-01-01
      • 2020-02-24
      • 2017-08-11
      • 2017-09-04
      • 2021-06-14
      • 2023-03-23
      相关资源
      最近更新 更多