Создание функциональности, подобной Vim, с помощью AutoHotKey (AHK)

Недавно я использовал autoHotKey на компьютере с Windows 8, и мне это очень понравилось. Но я хочу иметь возможность нажимать Caps Lock и превращать клавиатуру в командный режим, подобный vim, для перемещения курсора, простой вставки и удаления в любой программе.

ОБНОВЛЕНИЕ (спасибо @MCL за помощь)

Я пытаюсь использовать следующий сценарий, но он не изменит поведение в зависимости от состояния

state := GetKeyState("Capslock", "T") 
if state
  j::Send,{Left}
  l::Send,{Right}
  i::Send,{Up}
  k::Send,{Down}
return

person Damo    schedule 04.12.2014    source источник
comment
Классная история, братан. Есть ли где-нибудь вопрос? Вы что-то пробовали? Вы столкнулись с какой-либо конкретной проблемой?   -  person MCL    schedule 04.12.2014
comment
Извините, да, проблема в том, что я не могу заставить AHK изменять ключевые функции в зависимости от наличия включенного Capslock. я могу определить, что в данный момент нажата клавиша Capslock, но не то, что она включена или выключена.   -  person Damo    schedule 04.12.2014
comment
Поскольку вы не предоставили никакого кода, я могу только догадываться, что вы не используете режим переключения. Прочтите об этом здесь.   -  person MCL    schedule 04.12.2014


Ответы (1)


Создавайте контекстно-зависимые горячие клавиши с помощью #If:

#If GetKeyState("CapsLock", "T")=1

; The following hotkeys will only be effective if GetKeyState("CapsLock", "T")=1
j::Send,{Left}
l::Send,{Right}
i::Send,{Up}
k::Send,{Down}

#If ; end of #If
person fxam    schedule 04.12.2014
comment
Нет необходимости в =1, поскольку GetKeyState в любом случае является квазибулевым. - person MCL; 04.12.2014