编辑:将在 v1.39 中添加一个新命令以使其更简单,请参阅release notes。给出的键绑定示例是:
{
"key": "cmd+shift+h",
"command": "workbench.action.terminal.newWithCwd",
"args": {
"cwd": "${fileDirname}"
}
}
这在 Insider's Build 中确实有效。这将创建一个新终端,而不是修改现有终端。
[原始答案]:这将更改当前终端。
你可以很容易地设置一个键绑定来做到这一点:
{
"key": "alt+t",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "cd '${fileDirname}'\u000D"}
},
\u000D 是一个返回,因此命令会立即触发。
另请注意,我将'${fileDirname}' 放在引号中,以防您的目录名称中包含空格。
无论焦点在终端还是文件中,键绑定都将起作用。
建议进行测试的编辑:
请注意,在 Windows 上,您必须改用以下内容:
"args": {"text": "cd /d \"${fileDirname}\"\u000D"}
这是因为在 Windows 上,/d 参数必须与 cd 一起使用才能切换驱动器。
如果您在 Powershell 中更改驱动器号和转义双引号,请参阅 shortcut to change directory in Powershell and cmd 了解更多信息。
{
"key": "ctrl+alt+d",
"command": "workbench.action.terminal.sendSequence",
"args": {"text": "cd \"${fileDirname}\"\u000D"}
}
讨论/d 标志。感谢@skataben 提供更多信息。
或者,有一个扩展可以做到这一点:terminal-here,但键绑定实际上工作得更快。创建该扩展时,sendSequence 和变量替换功能不可用。
最后,如果你在资源管理器中右键单击一个文件夹,那里有一个Open in Terminal 选项(和相应的命令)。这意味着您可以像这样在键绑定中使用该命令:
{
"key": "alt+t",
"command": "openInTerminal"
}
但我的第一个 sendSequence 键绑定仍然是执行此操作的最快方法。