Windows Terminal配置WSL启动目录为当前打开路径的问题
Windows Terminal配置WSL启动目录为当前打开路径的问题
你遇到的这个问题我之前也折腾过,确实Windows Terminal里配置WSL启动到当前目录比普通终端麻烦不少,不过有几个靠谱的解决办法:
方法一:用wslpath转换路径配合命令行参数
你提到的Windows和WSL路径转换工具就是wslpath,我们可以借助PowerShell做中转,把当前Windows路径转换成WSL可识别的格式:
修改你的WSL配置项中的commandline字段为:
"commandline": "powershell.exe -Command \"wsl --cd (wslpath -u '%cd%')\""
这里的wslpath -u是把Windows路径转换成WSL的Unix风格路径,再通过wsl --cd指定启动目录,就能让WSL在当前路径启动了。
方法二:利用Windows Terminal内置动态变量
Windows Terminal本身提供了动态变量${localDir},能自动把当前的Windows路径转换成WSL兼容格式,直接用这个更简洁:
"commandline": "wsl --cd \"${localDir}\""
这个变量会自动识别你右键打开终端时的当前目录,不用手动做路径转换,是最省心的方法。
方法三:添加右键菜单直接在Windows Terminal打开WSL到当前目录
如果你想要类似Shift+右键“Open Linux shell here”的体验,但直接在Windows Terminal中打开,可以通过修改注册表添加右键选项:
- 按下
Win+R输入regedit打开注册表编辑器 - 定位到
HKEY_CLASSES_ROOT\Directory\Background\shell - 新建一个项,命名为
OpenWSLinWT - 在该项下新建字符串值
MUIVerb,设置值为“在Windows Terminal中打开WSL” - 再在
OpenWSLinWT下新建command项,修改默认值为:
wt.exe -w 0 new-tab -d . wsl.exe
这样在文件夹空白处右键,就能看到这个选项,直接打开Windows Terminal的WSL标签页并进入当前目录。
另外说下你之前尝试失败的原因:
wsl --cd %cd%无效是因为%cd%是Windows环境变量,WSL无法直接识别Windows格式的路径;wsl --cd .无效是因为在Windows Terminal的启动上下文里,.指向的是Terminal的默认启动目录,而非你右键点击的当前目录。
备注:内容来源于stack exchange,提问作者Platinium
相关产品推荐
相关产品推荐

