Я использую AutoHotkey для повторного переплетения Ctrl к Capslock как это:
Capslock::Ctrl
Я также связал свои клавиши Home для перемещения, в то время как Capslock сохранен:
^h::Send {LEFT}
^j::Send {DOWN}
^k::Send {UP}
^l::Send {RIGHT}
Проблема, я могу держать Capslock и выпустить одну комбинацию перемещения, но последующие касания h, j, k или l при тихом содержании Capslock приводят к одной из тех букв, появляющихся в моем редакторе. Другими словами, это - как будто Capslock выпускается, даже при том, что я все еще удерживаю его. Если я держу фактическую клавишу Ctrl и использую привязку перемещения, она хорошо работает. Кто-либо знает, как исправить это?
Решение было любезно отправлено на форуме AutoHotKey "VxE":
Capslock::
Gui, 93:+Owner ; prevent display of taskbar button
Gui, 93:Show, y-99999 NA, Enable nav-hotkeys: hjkl
Send {LCtrl Down}
KeyWait, Capslock ; wait until the Capslock button is released
Gui, 93:Cancel
Send, {LCtrl Up}
Return
#IfWinExist, Enable nav-hotkeys: hjkl
*h::Send {Blind}{LCtrl Up}{Left}{LCtrl Down}
*j::Send {Blind}{LCtrl Up}{Down}{LCtrl Down}
*k::Send {Blind}{LCtrl Up}{Up}{LCtrl Down}
*l::Send {Blind}{LCtrl Up}{Right}{LCtrl Down}
#IfWinExist, ; end context-sensitive block
Я думаю, что это - потому что ПК читает capslock как КЛАВИШУ-ПЕРЕКЛЮЧАТЕЛЬ. Заглавные буквы нажимаются, и это изменяет состояние, затем это нажимается снова, и состояние возвращается. Другие ключи неблокировки продолжают отправлять свой сигнал пока и каждый раз, когда они нажимаются.
Возможно, можно попробовать scancode отображающийся метод как это.