在 VSCode 终端中将 WSL 设置为 CWD

Nic*_*ros 7 visual-studio-code windows-subsystem-for-linux

我在 Windows 10 机器上安装了 ubuntu,并一直在使用 vscode。我想使用 wsl 集成终端。如果我只是打开 vscode,然后打开一个新的 wsl 终端,它会显示我的路径: username@Computer:/mnt/c/Users/winusername

如果我然后打开一个项目文件夹(不是工作区),然后打开一个新终端,它将显示为: username@Computer:~

这不在我的项目文件夹位置中 - 有没有办法让 wsl 集成终端将项目位置设置为当前工作目录?

如果我使用 Git bash 作为终端,它就可以很好地做到这一点,如下所示:

winusername@Computer MINGW64 /d/my/project/path

但我想使用 wsl。

Ala*_*eno 12

不完全相同的问题,但由于不同的原因而出现类似的症状。

\n

当我打开一个项目文件夹(不是工作区)并登陆我的目录username@Computer:~而不是我刚刚打开的项目目录时。

\n

这是由于我相当“聪明”的解决方案,cd ~.bashrc|.zshrc打算替换在路径/mnt/...而不是 WSL 发行版用户目录 ( /home/username) 启动终端的 WSL 默认行为。

\n

换句话说:

\n

当您启动新的 WSL 发行版终端窗口时,WSl 默认行为是从以下位置启动:

\n
\xe2\x9e\x9c  windowsusername pwd\n/mnt/...\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试通过将以下内容添加到我的.bashrcor来“修复”该问题.zshrc

\n
cd ~\n
Run Code Online (Sandbox Code Playgroud)\n

这使得我的终端总是在我的发行版主目录中打开,这对我来说很方便,但也弄乱了我的 vscode 终端,因为它自然总是在执行/home/distrousername任何其他任务之前将目录更改为我的发行版主用户目录。

\n
\xe2\x9e\x9c  ~ pwd\n/home/distrousername\n
Run Code Online (Sandbox Code Playgroud)\n

这种不周到的方法的一些额外副作用是我的 vscode 调试器无法连接到我的 nodejs 服务器,并且我的jestvscode 扩展无法通过扩展实用程序触发测试(例如,Debug扩展添加到您的*.test.js|ts或 的按钮*.spec.js|ts)。

\n

这不是对上面报告的问题的直接答案,但可能会帮助那些出于与我相同的原因而来到这里的人。

\n

  • 啊,谢谢你这个!我的情况类似:由于旧的 Windows 终端错误 (https://github.com/microsoft/WSL/issues/6995),我的 .bashrc 中有一个“cd ~”。 (2认同)

小智 0

我认为你的配置有点搞砸了。

检查有关用户设置和工作区设置的终端配置。

您可以在 UI 上轻松找到。

  1. 文件 > 首选项 > 设置

  2. 检查默认的“集成终端”路径和cwd值。

    就我而言,使用wsl.exe默认终端,而不是bash.exe

在此输入图像描述 在此输入图像描述

  1. User settingsWorkspace settingsUI 上关于相同选项键的优点进行比较。(您只需点击标题即可轻松进行比较)

  2. 如果你的设置没有问题,我推荐这个 VSCODE 扩展。它有助于打开带有打开文件路径的终端。https://marketplace.visualstudio.com/items?itemName=Tyriar.vscode-terminal-here&ssr=false