Я переназначил свой ключ блокировки Caps на Ctrl+Alt+Shift на основе этого ответа суперпользователя
; Caps lock becomes ctrl+alt+shift
*CapsLock::
SetKeyDelay -1
Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return
*CapsLock up::
SetKeyDelay -1
Send {Blind}{Ctrl Up}{Alt Up}{Shift Up}
return
И затем, чтобы получить навигацию в стиле Vim, я попытался переназначить h j k l на мои клавиши со стрелками. Я попробовал несколько подходов, которые не работали вообще. Я остановился на следующем подходе, потому что он работает для нажатий одной клавиши. Но когда я удерживаю, например, Caps lock J в Eclipse, комбинация клавиш Ctrl Alt J срабатывает вместо простого перехода по линии. Он срабатывает только при автоматическом повторении клавиатуры, но не при первоначальном нажатии клавиши.
^!+h::
Send {Left}
Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return
^!+j::
Send {Down}
Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return
^!+k::
Send {Up}
Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return
^!+l::
Send {Right}
Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return
Прокручивать 20 строк, нажимая J 20 раз, слишком утомительно. У кого-нибудь есть решение или я что-то неуместно использую? У меня есть некоторые другие команды, сопоставленные с Caps Lock и Capslock Win (технически сопоставленные с ^!+ и ^!+ #), поэтому исправления желательно не нарушать. Например:
; Caps lock + i becomes escape
^!+i::
Send {Escape}
Send {Blind}{Ctrl DownTemp}{Alt DownTemp}{Shift DownTemp}
return
Это работает отлично сейчас, потому что у меня не было необходимости удерживать клавишу Esc . Спасибо!