文件相关键绑定

时间:2015-02-12 09:27:38

标签: keyboard-shortcuts sublimetext sublimetext3

我已将以下代码添加到Sublime Text 3中的Preferences > Key Bindings - User配置文件中:

{ "keys": ["ctrl+b"], "command": "insert_snippet", "args": {"contents": "<strong>${0:$SELECTION}</strong>"} },

因此,当用户在编辑器中按 Ctrl + B 时,当前选择将被HTML标记<strong><strong>包围。< / p>

无论如何,我可以将此设置文件类型依赖吗?即如果用户在*.txt*.md文件中工作,则在编辑器中按 Ctrl + B 应选择Markdown粗体标记({{1在编辑任何其他类型的文件时(一般情况下或特别是**文件),然后用HTML标签包围,如上例所示。

这可以在Sublime Text 3中使用吗?

1 个答案:

答案 0 :(得分:1)

可以使用context参数:

完成此操作
"context": [
    {
        "key": "selector",
        "operator": "equal",
        "operand": "source.php"
    }
]
  

selector 返回当前scope的名称。

     

operator Type of test执行密钥值。默认为等于。

     

operand 键返回的结果将根据此值进行测试。

     

更多帮助请参阅:http://docs.sublimetext.info/en/latest/reference/key_bindings.html

实施例

仅在HTML中识别 Ctrl + B

// bold snippet for html
{ 
    "keys": ["ctrl+b"], 
    "command": "insert_snippet", 
    "args": {"contents": "<strong>${0:$SELECTION}</strong>"},
    "context": [
        {"key": "selector", "operator": "equal", "operand": "text.html.basic"}
    ]
},

用于在Markdown和纯文本中识别 Ctrl + B

// bold snippet for markdown and plain text
{ 
    "keys": ["ctrl+b"],
    "command": "insert_snippet", 
    "args": {"contents": "**${0:$SELECTION}**"},
    "context": [
        {"key": "selector", "operator": "equal", "operand": "(text.html.markdown, text.plain)"}
    ]
},