如何使用Escape隐藏Sublime内联错误(幻像)

时间:2017-01-28 13:06:31

标签: sublimetext3

所以问题是将其分配给Escape而不覆盖任何其他功能。我尝试了以下方法,但它不起作用。

{
  "keys": ["escape"],
  "command": "exec",
  "args": {"hide_phantoms_only" : true },
  "context": [ { "key": "phantom_visible", "operator": "equal", "operand": true }],
},

我没有找到任何关于存在上下文密钥的文档,所以phantom_visible只是猜测。

2 个答案:

答案 0 :(得分:4)

不幸的是,目前Sublime Text(在编写本文时,编译3126)没有可用于键绑定的上下文,以告知何时显示内联构建错误幻像。这已经简要discussed in the ST forums,因此未来的构建可能包含此功能。

与此同时,受this post启发,我们可能会尝试创建一个不会与默认 Esc 行为冲突的键绑定。但值得注意的是,默认的键绑定可能会发生变化,因此我们需要在更新ST时注意它,看看它是否仍然相关/正确涵盖所有场景:

{ "keys": ["escape"], "command": "exec", "args": { "hide_phantoms_only": true },
    "context":
    [
        // inverse of all the "escape" key contexts found in the Default keybindings
        { "key": "num_selections", "operator": "equal", "operand": 1 },
        { "key": "has_next_field", "operator": "equal", "operand": false },
        { "key": "has_prev_field", "operator": "equal", "operand": false },
        { "key": "panel_visible", "operator": "equal", "operand": false },
        { "key": "overlay_visible", "operator": "equal", "operand": false },
        { "key": "auto_complete_visible", "operator": "equal", "operand": false }
    ]
}

答案 1 :(得分:0)

我使用Package Control安装了Chain of Command,这使我可以为每个上下文执行多个命令。

当我按下[esc]键时,当面板可见时它会执行三件事:

  • 隐藏面板
  • 隐藏红色错误框
  • 杀死正在运行的程序

这是我对此的关键映射:

[ 
    { "keys": ["escape"],
        "context": [
            { "key": "panel_visible", "operator": "equal", "operand": true }
                   ],
        "command": "chain",
        "args": {
            "commands": [
                ["hide_panel", {"cancel": true}],
                ["exec", {"hide_phantoms_only": true}],
                ["exec", {"kill": true}]
            ]
        }
    }
]