gpt4 book ai didi

python - 如何创建打印变量的快捷方式(vscode)

转载 作者:行者123 更新时间:2023-12-02 16:56:29 24 4
gpt4 key购买 nike

我如何创建一个自定义快捷方式来生成将在 vscode 中打印选定变量的代码?

[1] arr = [1,2,3,4]  # I press double left mouse button on 'arr'
[2] print(arr) # Then I press <magic shortcut> (Ctrl+p for example)
# And vscode generate [2] row automatically

您可以通过print() 提供您的快速调试方法。

最佳答案

如果您只是将光标放在行尾而不是选择变量,则可以通过插入代码段的简单键绑定(bind)来完成此操作,而无需宏。键绑定(bind):

{
"key": "alt+w",
"command": "editor.action.insertSnippet",
"args": {
// works with cursor end of line, no selection
// output: print(arr)
"snippet": "\n${TM_CURRENT_LINE/(\\s*)(\\w*)\\b.*/print($2)/}"
}
},

如果你想要这个输出print(“arr”: arr),使用这个键绑定(bind):

{
"key": "alt+w",
"command": "editor.action.insertSnippet",
"args": {
// works with cursor end of line, no selection
// output: print(“arr”: arr)
"snippet": "\n${TM_CURRENT_LINE/(\\s*)(\\w*)\\b.*/print(\"$2\": $2)/}"
}
},

对于这些更简单的版本,变量必须是行中的第一个单词。


旧答案:

不幸的是,这似乎很难用一个简单的片段来完成。将在光标所在的位置插入一个新片段 - 在您的场景下,该片段将位于您选择的变量上 - 然后第一行的其余部分仍在该片段之后。

使用允许您执行多个命令的宏扩展相对容易,例如 multi-command或另一个。

安装扩展后,在您的设置中:

  "multiCommand.commands": [

{
"command": "multiCommand.printVariable",

"sequence": [
"editor.action.clipboardCopyAction",
"editor.action.insertLineAfter",
{
"command": "type",
"args": {
"text": "print("
}
},
"editor.action.clipboardPasteAction",
{
"command": "type",
"args": {
"text": ")"
}
},
]
}
},

然后在 keybindings.json 中设置一些键绑定(bind):

{
"key": "alt+q",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.printVariable" },

// use the following if you wish to limit the command to python files
"when": "resourceExtname == .py"
},

demo of macro snippet

如演示 gif 所示,所选文本可以位于行中的任何位置,如果行中紧接着 print() 语句下方有代码,将插入您期望的位置。

注意:这会将您选择的变量保存到剪贴板,以便覆盖。


如果你的变量总是在行首并被选中,你可以使用更简单的宏:

"multiCommand.commands": [

{
"command": "multiCommand.printVariable",
"sequence": [
{
"command": "editor.action.insertSnippet",
"args": {
// selected variable is at beginning of line
"snippet": "${TM_CURRENT_LINE}\nprint(${TM_SELECTED_TEXT})"
}
},
"cursorEndSelect", // select to end and delete
"editor.action.clipboardCutAction"
]
}
]

关于python - 如何创建打印变量的快捷方式(vscode),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56182207/

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