VSCode:将代码段分配给键绑定无效 编辑2020/09/03:

问题描述

我想使用一个片段来转换“。”至 '_'。我想将此代码段绑定到快捷键。

我在keybindings.json文件添加了以下内容

//keybindings.json
//Snippet-1
    {
        "key": "alt+u","command": "editor.action.insertSnippet","when": "editorTextFocus","args": {
            "snippet": "${1/[.]/_/g}",},

alt+u不会插入摘要

但是,以下方法可行:

//keybindings.json
// Snippet-2
    {
        "key": "alt+u","args": {
            "snippet": "${1/[.]/_/g}_more_text",

代码段中有一些文本时,它可以工作,但如果代码段中没有文本,则它会失败。

任何帮助将不胜感激。

编辑2020/09/03:

代码段适用于全局代码文件(如下所示)。只有当我在键盘绑定中使用它时,它才会失败。

//Snippet-3

    "snake_case": {
        "prefix": "sn","body":"${1/[.]/_/g}" 
    },

解决方法

通常,在方括号内的交替组中,您不需要转义文字点,但显然您需要摘录。 Vscode的文档,请参见transform examples。所以我尝试了:

"snippet": "${1/[\\.]/_/g}"

,它按您的预期工作。但是我仍然认为这里存在一个错误,因为仅添加一个空格就能使您的版本正常工作!