片段将始终在触发片段时光标所在的任何位置插入文本 - 这就是您看到所获得行为的原因。如果首先选择了该词,则插入将像正常一样替换该词。
最简单的方法是选择box
文本,然后选择alt+ c,您将得到结果。但是有额外的选择步骤。
这也是一个宏解决方案。
使用像multi-command这样的宏扩展把它放到你的 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"
}
},