gpt4 book ai didi

python - 如何将焦点返回到 VS 代码宏中的编辑器,将 Python 文本发送到调试控制台?

转载 作者:行者123 更新时间:2023-12-02 17:10:42 25 4
gpt4 key购买 nike

我曾尝试键绑定(bind)一个宏以将 python 文本发送到调试控制台并将焦点返回到 Visual Studio Code 中的编辑器。这是我尝试过的:

settings.json:

{
"macros": {
"selectionToReplAndReturnToEditor": [
"editor.debug.action.selectionToRepl",
"workbench.action.focusActiveEditorGroup"
]
}
}

keybindings.json:

[
{
"key": "alt+f9",
"command": "workbench.action.focusActiveEditorGroup",
},
{
"key": "alt+f10",
"command": "workbench.debug.action.focusRepl",
},
{
"key": "ctrl+enter",
"command": "macros.selectionToReplAndReturnToEditor",
"when": "editorTextFocus && editorHasSelection && editorLangId == 'python' && inDebugMode"
}
]

现在,Ctrl+Enter 会在调试控制台中执行文本,但不会将焦点返回到编辑器。 Ctrl+Enter 后跟 Alt+F9 这样做,但当然,我想绑定(bind)一个 key 。难道我做错了什么?我需要在宏中等待一些时间吗?我怎样才能做到这一点?

最佳答案

@bers 的回答是天赐之物。这是完整的解决方案。

这里我们需要做一些事情:

  1. 要将内容发送到调试器的集成 REPL,您需要名为 editor.debug.action.selectionToRepl 的操作。
  2. 然后您需要弄清楚如何将焦点返回到事件编辑器。这就是多命令扩展的用武之地。
  3. 最后,您需要调整您的键绑定(bind),以便它仅在 Debug模式打开时被激活。

keybindings.json

  {
"key": "cmd+enter",
"command": "workbench.action.terminal.runSelectedText",
"when": "editorHasSelection && editorTextFocus && !inDebugMode"
},

{
"key": "cmd+enter",
// This needs to be the command you define above.
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.selectionToReplAndReturnToEditor" },
"when": "editorTextFocus && editorHasSelection && editorLangId == 'python' && inDebugMode"
},

settings.json

"multiCommand.commands": [ // requires vscode:extension/ryuta46.multi-command
{ // ctrl+enter, editorTextFocus && editorHasSelection && editorLangId == 'python' && inDebugMode
"command": "multiCommand.selectionToReplAndReturnToEditor",
"sequence": [
"editor.debug.action.selectionToRepl",
"workbench.action.focusActiveEditorGroup",
]
},
]

关于python - 如何将焦点返回到 VS 代码宏中的编辑器,将 Python 文本发送到调试控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49457051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com