2

Я переназначил свой ключ блокировки 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 . Спасибо!

1 ответ1

2

Это своего рода альтернатива тому, что вы сейчас делаете. Я сделал это так, что CapsLock просто переключает переменную cmd . Основываясь на этой переменной, ваши ключи движения включены. Любую из этих клавиш можно удерживать для повторения несколько раз.

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

*CapsLock::    cmd := 1
*CapsLock up:: cmd := 0

#if cmd
    h::Key("left")
    j::Key("down")  
    k::Key("up")    
    l::Key("right")
    n::Key_repeat("^", "left")
    p::Key_repeat("^", "right")
#if

Key(key)
{
   SendInput {blind}{%key%}
}

Key_repeat(pfx, key)
{
    SendInput {blind}%pfx%{%key%}
}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .