如何在VS Code(WSL环境)中通过快捷键打开当前文件至Windows Terminal
实现VS Code快捷键在外部Windows Terminal打开当前文件(含WSL工作区)
这个需求完全可以实现,通过自定义任务+快捷键绑定就能搞定,分场景配置如下:
1. Windows本地工作区配置
- 在工作区的
.vscode/tasks.json中添加任务:
{ "version": "2.0.0", "tasks": [ { "label": "Open in Windows Terminal", "type": "shell", "command": "wt.exe start cmd /k cd /d \"${fileDirname}\"", "problemMatcher": [] } ] }
- 打开快捷键设置(Ctrl+K Ctrl+S),添加绑定:
{ "key": "ctrl+shift+o", // 可自定义快捷键 "command": "workbench.action.tasks.runTask", "args": "Open in Windows Terminal" }
按下快捷键后,Windows Terminal会直接打开到当前文件所在目录。
2. WSL工作区配置
WSL环境下需要将Windows路径转换为WSL兼容的Unix路径,同时调用Windows Terminal:
- 修改
.vscode/tasks.json的任务:
{ "version": "2.0.0", "tasks": [ { "label": "Open in Windows Terminal (WSL)", "type": "shell", "command": "cmd.exe /c wt.exe start wsl.exe -d ${env:WSL_DISTRO_NAME} --cd \"$(wslpath -u \"${fileDirname}\")\"", "problemMatcher": [] } ] }
- 绑定快捷键(可复用本地快捷键或单独设置):
{ "key": "ctrl+shift+alt+o", "command": "workbench.action.tasks.runTask", "args": "Open in Windows Terminal (WSL)" }
该任务会自动转换路径,在Windows Terminal中打开对应WSL发行版的目标目录。
统一适配两种环境(可选)
若想让同一个快捷键自动识别工作区环境,可通过when条件区分:
- 快捷键绑定改为:
[ { "key": "ctrl+shift+o", "command": "workbench.action.tasks.runTask", "args": "Open in Windows Terminal", "when": "!isWSL" }, { "key": "ctrl+shift+o", "command": "workbench.action.tasks.runTask", "args": "Open in Windows Terminal (WSL)", "when": "isWSL" } ]
这样无论在本地还是WSL工作区,按下同一快捷键都会自动调用对应任务。
注意:确保
wt.exe已加入系统PATH,若未加入,可在命令中指定Windows Terminal的完整安装路径。
内容的提问来源于stack exchange,提问作者Teiem
相关产品推荐
相关产品推荐

