如何使用 vscode 在新行中插入片段?
How can I insert a snippet on a new line with vscode?
我正在尝试为 python 制作一个 vscode 片段。
假设我有这样一行代码:
my_var = call_some_function()
我想双击 my_var 到 select,按一个键,结果如下:
my_var = call_some_function()
LOGGER.debug("my_var: %s", my_var)
<cursor is here>
它也应该适用于表达式,比如如果我在这一行中 select "x + y + z" 并按下键:
call_function(x + y + z)
它应该产生:
call_function(x + y + z)
LOGGER.debug("x + y + z: %s", x + y + z)
<cursor is here>
显然使用调试器更好。但有时你不能使用调试器。
这不完全是所要求的,但很接近,使用 $CLIPBOARD 变量:
"log-clipboard": {
"prefix": "log-clipboard",
"body": [
"LOGGER.debug('$CLIPBOARD: %s', $CLIPBOARD)",
"[=10=]"
],
"description": "Log an expression from the clipboard"
}
使用:
- Select 你想记录什么然后点击复制
- 转到你想要记录的地方
- 输入 log-clipboard 并回车
非常接近。
正如@Alex 的link 所建议的那样,我认为您需要使用宏扩展才能使其正常工作。我更喜欢 multi-command 因为它有一个可用的间隔延迟(这对某些宏是绝对必要的,但不是你的)。
在您的设置中:
"multiCommand.commands": [
{
"command": "multiCommand.debug",
"sequence": [
"editor.action.clipboardCopyAction",
"editor.action.insertLineAfter",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": "LOGGER.debug(\"$CLIPBOARD: %s\", $CLIPBOARD)\n[=10=]"
}
},
]
}
]
这会先将您的选择复制到剪贴板,以便稍后供代码段使用。然后在下面插入一个空行并在那里插入代码片段(如果下面的行已经有一些代码)。
使用键绑定触发:
{
"key": "ctrl+alt+d",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.debug" }
},
它适用于您的两个示例。
我正在尝试为 python 制作一个 vscode 片段。 假设我有这样一行代码:
my_var = call_some_function()
我想双击 my_var 到 select,按一个键,结果如下:
my_var = call_some_function()
LOGGER.debug("my_var: %s", my_var)
<cursor is here>
它也应该适用于表达式,比如如果我在这一行中 select "x + y + z" 并按下键:
call_function(x + y + z)
它应该产生:
call_function(x + y + z)
LOGGER.debug("x + y + z: %s", x + y + z)
<cursor is here>
显然使用调试器更好。但有时你不能使用调试器。
这不完全是所要求的,但很接近,使用 $CLIPBOARD 变量:
"log-clipboard": {
"prefix": "log-clipboard",
"body": [
"LOGGER.debug('$CLIPBOARD: %s', $CLIPBOARD)",
"[=10=]"
],
"description": "Log an expression from the clipboard"
}
使用:
- Select 你想记录什么然后点击复制
- 转到你想要记录的地方
- 输入 log-clipboard 并回车
非常接近。
正如@Alex 的link 所建议的那样,我认为您需要使用宏扩展才能使其正常工作。我更喜欢 multi-command 因为它有一个可用的间隔延迟(这对某些宏是绝对必要的,但不是你的)。
在您的设置中:
"multiCommand.commands": [
{
"command": "multiCommand.debug",
"sequence": [
"editor.action.clipboardCopyAction",
"editor.action.insertLineAfter",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": "LOGGER.debug(\"$CLIPBOARD: %s\", $CLIPBOARD)\n[=10=]"
}
},
]
}
]
这会先将您的选择复制到剪贴板,以便稍后供代码段使用。然后在下面插入一个空行并在那里插入代码片段(如果下面的行已经有一些代码)。
使用键绑定触发:
{
"key": "ctrl+alt+d",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.debug" }
},
它适用于您的两个示例。