2

Я использую autohotkey для создания (hjkl) клавиш со стрелками и выполняю прокрутку быстрее, не выполняя pagedowns/ups, что облегчает чтение учебников с большими иллюстрациями.

Проблема в том, что ahk выполняет все, как только мой цикл "пробел" закончен. Ex. в приведенном ниже коде он будет идти на 16 пробелов вниз и на один пробел вверх. Это не должно идти один пробел, если я не нажму "z".

Suspend On

h::Left
j::Down
k::Up
l::Right

space::
    Loop,8{
        Send {Down}
        Send {Down}
    }

z::
    Send {Up}

+Capslock::
CapsLock::Suspend Off
CapsLock Up::Suspend On

Я посмотрел несколько уроков по циклам и не понимаю, как я могу сделать что-то не так. Остальная часть кода работает.

1 ответ1

4

Вы должны return в конце каждого многострочного метода или горячей клавиши. В противном случае, по логике, вы не указали, когда определенный метод заканчивается. Обратите внимание, что однострочные методы имеют неявный оператор return .

Я вычистил и исправил ваш скрипт (у меня строгий стиль в отношении запятых, заглавных букв, отступов / пробелов и размещения скобок в отдельной строке):

Suspend, On

h::Left
j::Down
k::Up
l::Right

Space::
    Loop, 8
    {
        Send, {Down}
        Send, {Down}
    }
    return

z::
    Send, {Up}
    return

+CapsLock::
CapsLock::Suspend, Off
CapsLock Up::Suspend, On

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