在我的自定义代码段中使用TM_SELECTED_TEXT

Jas*_*son 5 visual-studio-code

从2016年11月(1.8版)开始,现在支持VSCode 代码片段变量,尤其是TM_SELECTED_TEXT。

这让我感到很高兴,因为我在Sublime Text和TextMate中都大量使用了它们。

我不知道如何使它在VSCode中工作。我创建了它们用作示例的代码段:

"in quotes": {
    "prefix": "inq",
    "body": "'${TM_SELECTED_TEXT:${1:type_here}}'"
}
Run Code Online (Sandbox Code Playgroud)

然后,我输入一些文本,突出显示它,然后事情就开始中断了。

这个想法是突出显示一些文本,运行摘要,然后${TM_SELECTED_TEXT:${1:type_here}}用突出显示的文本替换。我遇到的问题是要运行该代码段,您需要输入prefix值(在本例中为inq)以运行该代码段,该代码段将覆盖突出显示的文本,从而使所有内容混乱。

在Sublime / Textmate中,我从键盘组合启动了代码片段,使我的文本突出显示。

在VSCode中,是否可以按原样进行操作或从Sublime中可用的组合键启动片段?

gab*_*mdu 6

突出显示单词后,按下F1并运行命令“插入代码段”,然后在列表中选择您的代码段。

您也可以通过转到File > Preferences > Keyboard Shortcuts来编辑您的键绑定,并向“editor.action.showSnippets”命令添加一些快捷方式,如下所示:

{
    "key": "ctrl+alt+s",
    "command": "editor.action.showSnippets",
    "when": "editorTextFocus"
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 6

从v1.20开始,由于添加了新变量$ CLIPBOARD,这变得更加容易,请参阅新的代码片段变量。因此,无需分配和运行快捷方式-但必须保存到剪贴板CTRL- C

您的示例现在可能是:

"in quotes": {
    "prefix": "inq",
    "body": "'$CLIPBOARD:${1:type_here}}'"
}
Run Code Online (Sandbox Code Playgroud)

请注意,不需要括号,如$ {CLIPBOARD}中所示。在我的测试中可以使用括号,也可以不使用。