用于预定义文本替换的 VSCode 快捷方式/扩展?

Tom*_*bus 4 visual-studio-code

我正在为命名实体识别标记文本数据集。考虑以下示例:

{team:Alfreton Town} manager {manager:Nicky Law} says his players deserve huge credit for the character they have shown in their {league:Blue Square Bet Premier} relegation fight.
Run Code Online (Sandbox Code Playgroud)

我必须找到各种类型的所有实体,并将它们添加到类别前缀和后缀中。我想做的是预定义几个快捷方式,例如:

  • Meta + T将选定的文本替换$s{team:$s}
  • Meta + P将选定的文本替换$s{player:$s}

我对 VScode 扩展不是很熟悉。是否有一些插件可以允许定义此类替换?

dar*_*amo 9

您不需要为此进行扩展。您可以定义一个片段,将某些选定的文本替换为其他内容(包括选定的文本)。

例如,用这个片段

"Replace selection with {team:Selection}": {
        "body": "{team:$TM_SELECTED_TEXT}",
        "prefix": "Selection",
        "description": "Insert hehehe"
}
Run Code Online (Sandbox Code Playgroud)

您可以选择粗体文本

阿尔弗里顿镇主教练尼基·劳 (Nicky Law) 表示,他的球员在 Blue Square Bet Premier 保级斗争中所表现出的品格值得高度赞扬。

然后ctrl+ shift+ p,写“插入片段”并选择您新定义的片段。然后你得到

{team:Alfreton Town} manager Nicky Law says his players deserve huge credit for the character they have shown in their Blue Square Bet Premier relegation fight.

您还可以为片段定义键绑定,并且实际上将片段主体直接放入键绑定定义中(在这种情况下无需更改片段文件)。为此,打开键盘快捷键 json 文件并将以下代码放在那里

{
    "key": "ctrl+meta+t",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
        "snippet": "{team:$TM_SELECTED_TEXT}"
    }
}
Run Code Online (Sandbox Code Playgroud)

现在您可以选择一些文本并使用ctrl++ metat所选文本将被替换{team:selected text}。您可以轻松地对其他情况执行相同的操作,例如用于管理器的ctrl+ meta+m或您可能喜欢的任何其他键绑定。