Visual studio code 如何在Visual Studio代码片段中替换变量?
我使用带有键绑定的javascript代码段 我有以下代码:Visual studio code 如何在Visual Studio代码片段中替换变量?,visual-studio-code,code-snippets,vscode-snippets,Visual Studio Code,Code Snippets,Vscode Snippets,我使用带有键绑定的javascript代码段 我有以下代码: { "key": "alt+c", "command": "editor.action.insertSnippet", "when": "editorTextFocus", "args": { "snippet": " const $TM_CURRENT_WORD = $1" } }, 如果我键入box,然后按a
{
"key": "alt+c",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": " const $TM_CURRENT_WORD = $1"
}
},
如果我键入box
,然后按alt+c,我会得到
box const box =
但我预料
const box =
我怎样才能做到这一点 在触发代码段时,代码段将始终在光标所在的位置插入文本-这就是您看到所获得行为的原因。如果第一次选择该单词,则插入将替换该单词,就像正常情况一样
最简单的方法就是选择
框
文本,然后按alt+c,您将得到结果。但是需要额外的选择步骤
这里还有一个宏观解决方案 使用类似的宏扩展将其放入settings.json中:
"multiCommand.commands": [
{
"command": "multiCommand.insertConst", // whatever name you want to give it
"sequence": [
"cursorWordLeftSelect",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": "const $TM_SELECTED_TEXT = $1"
}
}
]
}
]
还有一些键绑定:
{
"key": "alt+c",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.insertConst" }, // use same name here
"when": "editorTextFocus"
},
或者,您可以修改代码段,这样就不会首先键入变量名。您可以触发代码段,然后键入变量名、tab,然后键入其值,如下所示:
{
"key": "alt+c",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": " const $1 = $2"
}
},
或者我可以在命令部分使用另一个VScode命令“deleteWordLeft”。但我不知道如何同时使用这两个命令。请…举个例子。(我也试过“宏”),但它不起作用!也许这个扩展没有维护(bcs,基于不同命令的最新vscode)…或者我做错了什么…你使用了我链接到的“多命令”扩展吗?这就是我上面用的。我的代码不能与“宏”扩展一起使用,它需要不同的语法。是的……我昨天使用了“multi-command”。(但在keybinding中,“multi-command.insertConst”(命令)未知。它用下划线发出警告)事实上,我正在为vs代码开发一个js代码段扩展。但是谢谢你的回答…我还请求vscode团队在github中添加多命令支持。如果你感兴趣,可以查看我的扩展。祝你有愉快的一天!是的,尽管有警告,多命令宏仍然适用于我。作者意识到了这些——显然,其他一些宏扩展也收到了同样的警告。