在 VS Code 中,如何跳转到调试器的当前位置?它由一条黄线表示,但我往往会迷失浏览其他文件和功能,只是很难找到返回调试会话当前暂停位置的方法。
应该很简单,但我在文档中找不到任何内容。我什至浏览了键盘映射中包含“调试”的所有操作,但没有找到我要找的东西。
Navigate to Top of Call Stack
在最近的 VSCode(1.71 +)中,有一个
Navigate to Top of Call Stack
命令(workbench.action.debug.callStackTop
)。您只需在键盘快捷键菜单中为其指定一个快捷键即可。
--> CoderBlue 指出,请在那里投票:)
可以通过单击(或用键盘选择)“调用堆栈”视图中最上面的条目来实现所需的效果(跳转到当前执行点)。
使用多命令宏扩展(受到Mark的回答的启发),可以创建一个自定义命令,该命令将始终选择调用堆栈视图中最上面的条目。
这将发送给您的
keybindings.json
:
{
"key": "cmd+f4",
// Go to current debugging position
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"workbench.debug.action.focusCallStackView",
"list.clear",
"list.focusFirst",
"list.select"
// optional, to focus your editor:
// workbench.files.action.focusOpenEditorsView
]
}
},
键入
ctrl-k ctrl-s
以访问键盘快捷键。
在搜索框中输入“callstack”并找到“导航到调用堆栈顶部”。
设置按键绑定,例如我使用
ctrl-r d
:
ctrl-r d
我就在那里!似乎没有任何
go to current breakpoint
命令,只有上一个和下一个命令。
但是,我发现这个“错误”可能有用:请参阅repl评估导致编辑器跳转到当前断点!
因此,您可以只关注 repl,Enter,然后您将跳转到当前断点。它确实会污染您的调试控制台并产生
undefined
结果,但也许这是可以接受的。
或者您可以将键绑定分配给执行焦点命令并一次性清除调试控制台的宏。使用您选择的宏扩展 - 我正在使用下面的多命令 - 这将进入您的设置:
"multiCommand.commands": [
{
"command": "multiCommand.gotoCurrentBreakpoint",
// "interval": 350,
"sequence": [
"workbench.debug.action.focusRepl",
"repl.action.acceptInput",
// following command clears the debug console if you wish
"workbench.debug.panel.action.clearReplAction"
]
}
]
和一些按键绑定:
{
"key": "alt+/",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.gotoCurrentBreakpoint" },
},
底层的“bug”——如果它是一个bug——会存在多久......?
可以通过单击(或用键盘选择)“调用堆栈”视图中最上面的条目来实现所需的效果(跳转到当前执行点)。
“使用键盘选择”现已使用 VSCode 1.70(2022 年 7 月)和 issue 149975(“添加键绑定命令以在调试时导航调用堆栈(无需鼠标)”)
请参阅 PR 154117 并提交 3d3bfce:
用于导航调用堆栈的命令”
添加命令来导航调用堆栈。
用户可以为此手动添加键绑定。引入新命令(停止调试时可用):
Debug: Navigate to Top of Call Stack
Debug: Navigate to Bottom of Call Stack
Debug: Navigate Up Call Stack
Debug: Navigate Down Call Stack
因此,您可以轻松地将快捷键关联到“导航到调用堆栈顶部”,即“我的调试会话当前暂停的位置”。
今天可在 VSCode 内部人员中获取此内容。
“^”+“-”将您带到编辑器中Mac用户的上一个位置,我不知道调试窗口是否相同