Я использую режим vim в возвышенном тексте 3, я хочу использовать ctrl+[ вместо esc.

Это моя конфигурация раскладки:

[
    // vim_mode
    // exit insert mode, same to 'esc'
    { "keys": ["ctrl+["], 
        "command": 
        [ 
            "single_selection", 
            "clear_fields", 
            "hide_auto_complete", 
            "hide_overlay", 
            "hide_popup", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
        ],
        "args": { "cancel": true },
        "context":
        [
            { "key": "num_selections", "operator": "not_equal", "operand": 1 }
        ]
    },
    { "keys": ["ctrl+["], 
        "command": 
        [
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
        ],
        "args": { "cancel": true },
        "context":
        [
            { "key": "has_next_field", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+["], 
        "command": 
        [
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
        ],
        "args": { "cancel": true },
        "context":
        [
            { "key": "has_prev_field", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+["], 
        "command": 
        [
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
        ],
        "args": { "cancel": true },
        "context":
        [
            { "key": "panel_visible", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+["], 
        "command": 
        [
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
        ],
        "args": { "cancel": true },
        "context":
        [
            { "key": "overlay_visible", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+["], 
        "command": 
        [
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "hide_panel",
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
        ],
        "args": { "cancel": true },
        "context":
        [
            { "key": "popup_visible", "operator": "equal", "operand": true }
        ]
    },
    { "keys": ["ctrl+["], 
        "command": 
        [
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
            "hide_overlay", 
            "clear_fields", 
            "hide_popup", 
            "hide_auto_complete", 
            "exit_insert_mode", 
            "enter_visual_mode",
            "hide_panel",
        ],
        "args": { "cancel": true },
        "context":
        [
            { "key": "auto_complete_visible", "operator": "equal", "operand": true }
        ]
    },
    {
        // auto_complete
        // use tab to forward to next completion source
        "keys": ["ctrl+n"],
        "command": "move",
        "args": { "by": "lines", "forward": true },
        "context":
        [
            { "key": "auto_complete_visible" },
        ],
    },
    {
        // auto_complete
        // use tab to backward to prev completion source
        "keys": ["ctrl+p"],
        "command": "move",
        "args": { "by": "lines", "forward": false },
        "context":
        [
            { "key": "auto_complete_visible" },
        ],
    },
]

После того, как я сопоставлю все escape commands и vim exit insert mode на ctrl+[, когда я наберу это: введите описание изображения здесь

ctrl+[ не работает, выбор не исчезнет, пока я не нажму esc.

Почему ctrl+[ не может заставить его исчезнуть?

0
linrongbin 25 Апр 2017 в 06:08

2 ответа

Лучший ответ

Вы можете создать одну команду для выхода в чистый командный режим, установив ChainOfCommand (или создание макроса) и просто вызовите все команды выхода одновременно. Просто установите его и вставьте в свою раскладку:

{
    "keys": ["ctrl+["],
    "command": "chain",
    "args": {
        "commands": [
            ["hide_overlay"],
            ["hide_popup"],
            ["hide_auto_complete"],
            ["hide_panel", {"cancel": true}],
            ["clear_fields"],
            ["single_selection"],
            ["exit_insert_mode"],
            ["exit_visual_mode"],
        ]
    },
},
2
r-stein 26 Апр 2017 в 08:11

Вы также можете добавить "vintage_ctrl_keys": true, в свои настройки.

0
spelufo 1 Июл 2019 в 19:57