在VS Code中,我如何跳转到调试器的当前位置?它由一条带黄色的线表示,但是我容易在浏览其他文件和函数时迷失方向,只有在努力寻找当前暂停调试会话的位置时才能回到这里。
应该很简单,但我在文档中找不到任何内容。我甚至查看了包含“debug”关键词的所有操作,但没有找到我要找的内容。
应该很简单,但我在文档中找不到任何内容。我甚至查看了包含“debug”关键词的所有操作,但没有找到我要找的内容。
导航到调用堆栈顶部
在最新的VSCode(1.71+)中,有一个导航到调用堆栈顶部
命令(workbench.action.debug.callStackTop
)。您可以在键盘快捷键菜单中简单地为其分配一个快捷键。
--> 由CoderBlue指出,请在那里点个赞 :)
所需效果(跳转到当前执行点)可以通过点击“调用堆栈”视图中最顶部的条目(或使用键盘选择)来实现。
使用multi-command宏扩展程序(受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
时就可以到达目标了!目前看起来没有“转到当前断点”命令,只有上一个和下一个命令。
不过,我认为这个“bug”可能会有用:请参见repl evaluation causes editor to jump to current breakpoint!
所以你可以只专注于 REPL,然后按Enter键,就可以跳转到当前的断点。这样做会在你的调试控制台中添加一个undefined
结果,但也许这是可以接受的。
或者你可以为一个执行焦点命令并一次性清除调试控制台的宏分配一个按键绑定。使用你选择的宏扩展程序(我正在使用下面的multi-command),将以下内容放入你的设置中:
"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”会存在多久,以供使用……?
Alt+/
快捷键时,首先会检查按键绑定,然后再检查设置中的序列?为什么不把所有代码都放在按键绑定中呢? - Timo
command 'extension.multiCommand.execute' not found
的错误提示,所以可能需要查看Mark的答案并将代码添加到settings.json
中。 - Timo