Как заставить текстовую сборку Sublime выполняться при вводе цифровой клавиатуры?

Я использую GoSublime внутри возвышенного текста для разработки Golang. Нажатие Ctrl + B открывает панель сборки, затем мне нужно ввести команду, например, go run main.go, и нажать Enter. Когда я хочу выполнить команду, используя numpad Enter, это не работает. Как заставить его работать и с numpad Enter?

Я проверил раскладку клавиш по умолчанию в возвышенном тексте, она предоставляет только следующие привязки клавиш для инструмента сборки.

    { "keys": ["f7"], "command": "build" },
    { "keys": ["ctrl+b"], "command": "build" },
    { "keys": ["ctrl+shift+b"], "command": "build", "args": {"select": true} },
    { "keys": ["ctrl+break"], "command": "exec", "args": {"kill": true} },

Спасибо!


person Cute Tom    schedule 29.06.2016    source источник


Ответы (1)


Единственное предложение, которое я могу дать, это попробовать использовать numpad_enter с включенным и выключенным NumLock и посмотреть, будет ли это иметь значение. Я использую OS X и использую стандартную проводную клавиатуру Apple с цифровым блоком, а также запускаю Linux на виртуальной машине. Когда я открываю консоль (Ctrl`) и запускаю команду

sublime.log_input(True)

затем перефокусируйте файл, над которым я работаю, нажатие Return (эквивалент Enter на основной клавиатуре) дает

key evt: enter

в консоли, а нажатие Enter на клавиатуре дает

key evt: keypad_enter

Это поведение не меняется в OS X или Linux (я еще не пробовал на своей виртуальной машине Windows) независимо от того, как установлен NumLock. Если вы работаете в Windows или Linux с клавиатурой Windows, это может измениться, но я в этом сомневаюсь.


Причина, по которой Sublime делает это, заключается в том, что numpad_enter и Enter/Return отправляют программе разные коды клавиш. Sublime ищет определенный код клавиши (тот, который отправляется Enter) для отправки содержимого всплывающих меню и многого другого, и игнорирует код, отправленный numpad_enter. К сожалению, поскольку это встроенное поведение, нет настройки или привязки клавиш, которые можно было бы переопределить.

Единственная другая возможность, которую я могу придумать, - это использовать утилиту для вашей ОС, чтобы перепрограммировать вас numpad_enter для отправки того же кода клавиши, что и Enter. Я не очень хорошо с ней знаком, но для Windows я слышал, что AutoHotKey — довольно полезная утилита, и, как насколько я понимаю бесплатно. Вы можете легко переназначить ключи. Вам придется поискать в Google другие утилиты, если вы работаете в OS X или Linux.

Удачи!

person MattDMo    schedule 29.06.2016