如何创建打印变量的快捷方式 (vscode)
How to create a shortcut to print a variable (vscode)
如何创建自定义快捷方式来生成将在 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()
提供快速调试的方法。
这可能不是您正在寻找的解决方案,但使用 Windows 并使用各种鼠标和键盘快捷方式,我支付了商业软件的许可 "ATNSOFT Key Manager"( their Website).
还有一个demo-version,但是功能有限
使用它,您可以指定在哪些程序中或 windows 您的功能将起作用,因此它独立于您要使用的软件。
例如,您可以在编辑器中复制该变量名称并指定 key-combo [CTRL]+[P] 以将换行符、打印命令和您复制的变量名称粘贴到您的编辑器中.无需编程,您只需定义一个 "rule" 做什么、在哪里做以及什么时候应该做。
我与 ANTSOFT 没有任何关联,我喜欢免费和开放的软件,但这是商业软件之一 windows-tools 我很高兴拥有。
不过你当然可以Autohotkey试试看,看来应该也能做到。
如果您只是将光标放在行尾而不是选择变量,则可以通过插入片段的简单键绑定来完成此操作,而无需宏。键绑定:
{
"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()/}"
}
},
如果您想要此输出 print(“arr”: arr)
,请使用此键绑定:
{
"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(\"\": )/}"
}
},
对于这些更简单的版本,变量必须是行中的第一个单词。
较早的答案:
不幸的是,这似乎很难用一个简单的片段来完成。将在光标所在的位置插入一个新片段 - 在您的场景下,该片段将位于您选择的变量上 - 然后第一行的其余部分仍然在该片段之后。
使用允许您执行多个命令的宏扩展相对容易,例如 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中设置一些键绑定:
{
"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"
},
如演示 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"
]
}
]
一些额外的信息和对马克的回答的一点调整:
VS Code的自定义快捷方式JSON可以用F1
或Ctrl+Shift+P
->Preferences: Open Keyboard Shortcuts (JSON)
打开,用下面的代码你可以在上面输入变量名一个新行,然后按 Ctrl+D
到 select 变量,然后按 Ctrl+;
(在美国键盘布局中的 L 旁边)将其替换为 print("var:", var):
// Place your key bindings in this file to override the defaults
[
{
"key": "ctrl+;",
"command": "editor.action.insertSnippet",
"args": {
// works together with Ctrl+L or Ctrl+D to select the line first
// output: print(“arr”: arr)
"snippet": "${TM_SELECTED_TEXT/(\s*)(\w*)\b.*/print(\":\", )/}"
}
},
]
如何创建自定义快捷方式来生成将在 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()
提供快速调试的方法。
这可能不是您正在寻找的解决方案,但使用 Windows 并使用各种鼠标和键盘快捷方式,我支付了商业软件的许可 "ATNSOFT Key Manager"( their Website).
还有一个demo-version,但是功能有限
使用它,您可以指定在哪些程序中或 windows 您的功能将起作用,因此它独立于您要使用的软件。
例如,您可以在编辑器中复制该变量名称并指定 key-combo [CTRL]+[P] 以将换行符、打印命令和您复制的变量名称粘贴到您的编辑器中.无需编程,您只需定义一个 "rule" 做什么、在哪里做以及什么时候应该做。
我与 ANTSOFT 没有任何关联,我喜欢免费和开放的软件,但这是商业软件之一 windows-tools 我很高兴拥有。
不过你当然可以Autohotkey试试看,看来应该也能做到。
如果您只是将光标放在行尾而不是选择变量,则可以通过插入片段的简单键绑定来完成此操作,而无需宏。键绑定:
{
"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()/}"
}
},
如果您想要此输出 print(“arr”: arr)
,请使用此键绑定:
{
"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(\"\": )/}"
}
},
对于这些更简单的版本,变量必须是行中的第一个单词。
较早的答案:
不幸的是,这似乎很难用一个简单的片段来完成。将在光标所在的位置插入一个新片段 - 在您的场景下,该片段将位于您选择的变量上 - 然后第一行的其余部分仍然在该片段之后。
使用允许您执行多个命令的宏扩展相对容易,例如 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中设置一些键绑定:
{
"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"
},
如演示 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"
]
}
]
一些额外的信息和对马克的回答的一点调整:
VS Code的自定义快捷方式JSON可以用F1
或Ctrl+Shift+P
->Preferences: Open Keyboard Shortcuts (JSON)
打开,用下面的代码你可以在上面输入变量名一个新行,然后按 Ctrl+D
到 select 变量,然后按 Ctrl+;
(在美国键盘布局中的 L 旁边)将其替换为 print("var:", var):
// Place your key bindings in this file to override the defaults
[
{
"key": "ctrl+;",
"command": "editor.action.insertSnippet",
"args": {
// works together with Ctrl+L or Ctrl+D to select the line first
// output: print(“arr”: arr)
"snippet": "${TM_SELECTED_TEXT/(\s*)(\w*)\b.*/print(\":\", )/}"
}
},
]