Sublime Text键绑定-按下空格键时括号之间的应用程序空间

时间:2018-11-20 18:36:40

标签: key sublimetext3 key-bindings

我添加了一个按键绑定,当我在SublimeText中按下“(”时,会将选择器置于括号之间。

{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "(${0:$SELECTION})"}, "context":
  [
    { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
    { "key": "selection_empty", "operator": "equal", "operand": false, "match_all": true }
  ]
},

但是,我想创建一个按键绑定,当我按下空格键并且位于括号之间时,它将(|)变成(|)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于这样的事情,您需要诸如以下的键绑定:

{
    "keys": [" "],
    "command": "insert_snippet",
    "args": {
        "contents": " $0 "
    },
    "context": [
        // { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
        { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
        { "key": "preceding_text", "operator": "regex_contains", "operand": "\\($", "match_all": true },
        { "key": "following_text", "operator": "regex_contains", "operand": "^\\)", "match_all": true }
    ],
}

insert_snippet命令插入一个包含两个空格字符的代码段,光标居中于其中,而context条目仅在没有选择的情况下使绑定处于活动状态,光标之前的文本结束(中,光标后的文本以)开头。

按照本文所述,在这种情况下它将始终处于活动状态,但是如果需要,您也可以在此处取消注释第一个上下文条目,这进一步限制了此绑定仅在打开auto_match_enabled设置时才处于活动状态。这样一来,只有在输入单个(字符会自动插入配对字符的情况下,它才有效。