Как отключить/переопределить ключ ввода для автозаполнения?
В 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
?
Ответы
Ответ 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 лучше:) Забыл об этой настройке (хотя это в контексте, поэтому я должен был знать...). Угадайте, что мой ответ более общий, как отключить привязку клавиш.