Подтвердить что ты не робот

Как отключить/переопределить ключ ввода для автозаполнения?

В Sublime Text 3 я хочу отключить клавишу enter, чтобы выбрать элемент из раскрывающегося списка автозаполнения и разрешить только клавишу tab.

Я нашел этот раздел во встроенном файле Default (OSX).sublime-keymap:

{ "keys": ["enter"], "command": "commit_completion", "context":
    [
        { "key": "auto_complete_visible" },
        { "key": "setting.auto_complete_commit_on_tab", "operand": false }
    ]
},

Похоже, что если я удалю это из конфигурации, < <30 > не будет выбирать элемент в раскрывающемся списке. К сожалению, не рекомендуется изменять этот файл и только переопределять его в моих файлах User. Я не думаю, что могу редактировать его без изменения содержимого .app.

Я попытался переопределить его, удалив разные разделы, а также удаляю все, кроме "keys": ["enter"], но ничего не работает.

Как я могу добиться этого без изменения встроенного Default (OSX).sublime-keymap и только файла User/Default (OSX).sublime-keymap?

4b9b3361

Ответ 1

Я никогда не использовал Sublime Text 3,, но я не думаю, что после Sublime Text 2 менялось следующее.

То, что вы хотите достичь, на самом деле является стандартной функцией в Sublime Text. Вам просто нужно включить его.

Эта строка из вашего кода, который вы указали...

{ "key": "setting.auto_complete_commit_on_tab", "operand": false }

... означает "выполнить команду только, если для параметра с именем" auto_complete_commit_on_tab "установлено значение false". Поэтому просто включите эту настройку.

В Default/Preferences.sublime-settings:

// By default, auto complete will commit the current completion on enter.
// This setting can be used to make it complete on tab instead.
// Completing on tab is generally a superior option, as it removes
// ambiguity between committing the completion and inserting a newline.
"auto_complete_commit_on_tab": false,

Поместите "auto_complete_commit_on_tab": true в User/Preferences.sublime-settings. Доступ к обоим указанным файлам можно получить через меню "Настройки".

Ответ 2

Вы можете назначить его несуществующей команде. Попробуйте добавить следующее к User/Default (OSX).sublime-keymap

{ "keys": ["enter"], "command": "noop", "context":
    [
        { "key": "auto_complete_visible" },
        { "key": "setting.auto_complete_commit_on_tab", "operand": false }
    ]
}

Если вы устанавливаете/записываете плагин с командой noop, вам нужно будет изменить эту команду.

Edit

Решение Lydell лучше:) Забыл об этой настройке (хотя это в контексте, поэтому я должен был знать...). Угадайте, что мой ответ более общий, как отключить привязку клавиш.