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



我目前遇到了一个非常烦人的问题,因为我在电脑上运行了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_PWDPWD。在这个问题中,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代码的更高版本中,此项已被弃用。

  1. 将以下JSON片段添加到Visual Studio Code 中的设置.JSON文件中

  2. 关闭在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,并且全部工作。此外,上述解决方案对我有效。

最新更新