触发 SublimeText 自定义片段时如何省略(或删除)自动匹配括号?

How can I omit (or delete) auto matching parenthesis when triggering a SublimeText custom snippet?

我正在尝试在 SublimeText 中创建一个 JavaScript 箭头函数片段。当我输入一个开放的括号时它应该可用:(。我希望能够通过 tab 来创建这个:

() => {}

启用自动匹配(我通常喜欢的功能)后,我不知道如何避免这种情况:

() => {})

这是我目前的代码,除了自动匹配问题外效果很好:

<snippet>
    <content><![CDATA[
() => {}
]]></content>
    <tabTrigger>(</tabTrigger>
    <scope>source.js</scope>
</snippet>

片段只能插入文本或替换所选文本 - 它们不能修改文档中其他位置的文本,即使是文本插入符号旁边的文本。我认为实现你想要的最好方法是使用键绑定,当 ( 是按下,然后获取键绑定以插入代码段,避免需要单独的 .sublime-snippet 文件。

{
    "keys": ["(", "tab"], "command": "insert_snippet", "args": { "contents": "() => {}" }, "context":
    [
        { "key": "selector", "operator": "equal", "operand": "source.js" }
    ]
},

请注意,如果您希望代码片段仍显示在命令面板 Snippet: 选项中,您可以保留 .sublime-snippet 文件而不会产生任何负面影响 - 键绑定将优先于片段中定义的选项卡触发器。