【问题标题】:VSCode: Assigning key binding to snippet not workingVSCode:将键绑定分配给片段不起作用
【发布时间】:2020-12-21 15:33:44
【问题描述】:

我想使用 sn-p 来转换 '.'到 '_'。我想把这个sn-p绑定到一个快捷键上。

我将以下内容添加到keybindings.json 文件中。

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

alt+u 不会插入sn-p。

但是以下工作:

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

当 sn-p 中有一些文本时它可以工作,但当 sn-p 中没有文本时会失败。

任何帮助将不胜感激。

编辑 2020/09/03:

这个 sn-p 在全局 sn-p 文件中工作(如下所示)。仅当我在键绑定中使用它时才会失败。

//Snippet-3

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

【问题讨论】:

  • 这应该可以工作(你可以在它后面放一个空格并且它可以工作),所以它看起来像一个错误。您要在其中粘贴一些文本进行转换吗?

标签: visual-studio-code vscode-settings code-snippets vscode-snippets


【解决方案1】:

通常在括号中的交替组中,您不需要转义文字点,但显然您在 sn-ps 中这样做。 Vscode 的文档,见transform examples。所以我尝试了:

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

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

【讨论】:

  • 不幸的是,您的 sn-p 不适合我。你能告诉我你是如何使用这个sn-p的吗?您是否将它与键绑定一起使用?因为,当我在全局 sn-p 文件中使用 sn-p 时,它可以工作(请参阅我对问题的编辑)。它仅在我在键绑定中使用时才起作用。非常感谢!
  • 点击Alt+u,然后输入 - 通过键入或粘贴 - 一些要转换的文本(点到下划线),然后按 Tab 键查看转换后的文本。你打tab了吗?您究竟是如何尝试使用 sn-p 的?
猜你喜欢
  • 2012-06-18
  • 1970-01-01
  • 2015-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-31
相关资源
最近更新 更多