Emulando chaves direcionais vi usando o AutoHotKey

2

Atualmente estou usando o seguinte código para alterar o layout do teclado:

//vim.ahk
CapsLock::Send, {CTRLDOWN}{SHIFTDOWN}{SHIFTUP}{CTRLUP}{CTRLUP}
    return
!^CapsLock::CapsLock

CapsLock & j  :: Send  {Down}
CapsLock & k  :: Send {Up}
CapsLock & h  :: Send {Left}
CapsLock & l  :: Send {right}
CapsLock & p  :: Send {PGUP}
CapsLock & `; :: Send {PGDN}
CapsLock & ^  :: Send {home}
CapsLock & $  :: Send {end}

Este código é estável o suficiente? O problema é que às vezes, de maneira CapsLockindesejada,

Upadet: Descobri que o CapsLock liga quando é pressionado com qualquer tecla, exceto as teclas acima. ( hkll;pae)

PHPst
fonte
1
Eu uso algo extremamente similar. Que tipo de resposta você está procurando? Você se deparou com problemas ao usar este código?
Elliot DeNolf
Eu só quero saber se está em sua forma ideal ou pode se tornar melhor?
PHPst
Note que jno Vim está em baixo e kestá em alta.
echristopherson
1. Quando Capslockliga? 2. O que você está Capslock::mapeando para usado?
William Bettridge-Radford
@ WilliamBettridge-Radford Pergunta foi atualizado, eu não recebi sua segunda pergunta.
PHPst

Respostas:

2

adicione isso ao topo do seu script.

SetCapsLockState, AlwaysOff

!^CapsLock::CapsLock

Deve parar todos os eventos do Capslock que você não cria.

http://www.autohotkey.com/docs/commands/SetNumScrollCapsLockState.htm

William Bettridge-Radford
fonte
Era desejável que o CapsLock pudesse ser ligado usando ctrl+shif+CapsLock, mas acho que mantê-lo sempre desligado é melhor do que ligar acidentalmente. Obrigado.
PHPst
Isso ainda deve funcionar.
William Bettridge-Radford
Não, não funciona.
PHPst
Está funcionando para mim aqui. Você pode tentar com apenas essas duas linhas em seu próprio arquivo? Talvez tente +Capslock:Capslocktambém.
William Bettridge-Radford
Isso não funciona: SetCapsLockState, AlwaysOff !^CapsLock::CapsLockMas isso funciona:SetCapsLockState, AlwaysOff +Capslock::Capslock
PHPst
0

Eu parei de brincar com o CapsLock como um modificador por causa do raciocínio de consistência ( você vai ficar tão perdido sem ele no pc de outra pessoa ). Então, em vez de CapsLockusar ALT+SHIFT (!+)modificadores, porque não é comum, mas ainda é confortável o suficiente para facilitar o alcance. Eu era capaz de replicar up/down/left/right (kjhl)as teclas de seta com AutoHotkey como o Vim faz isso, mas não conseguia navegar por essas teclas ao usar o Windows ALT + TAB (veja abaixo como eu acidentalmente encontrei uma solução).

Então, eu acidentalmente encontrei uma solução para usar as teclas de navegação Vim enquanto no Windows ALT + TAB sem que ele desaparecesse. Eu não sou capaz de explicá-lo, mas ele simplesmente funciona e eu vou postar minha configuração atual e mostrar a diferença com a minha descoberta acidental.

AHK VIM NAVEGAÇÃO HOTKEY

Se estas chaves não couberem confortavelmente, pls. mude para o seu gosto. Eu só prefiro ter shortnavigation-keys (up/down/left/right)correspondência vim e coloquei personalização apenas para olongnavigation-keys (home/end/pgup/pgdn)

!+[::SendInput, {Escape} !+k::SendInput, {Up} !+j::SendInput, {Down} !+h::SendInput, {Left} !+l::SendInput, {Right} !+p::SendInput, {Home} !+u::SendInput, {End} !+o::SendInput, {PgUp} !+i::SendInput, {PgDn} !+0::SendInput, ^{Tab} ; tabmove-forward !+9::SendInput, !^{Tab} ; idk why, but doesn't tabmove-backward

WIN ALT + TAB com VIM-NAVIGATIONKEYS ( menu estático, devido a outra tecla de atalho anterior )

  • ativar !+9::SendInput, !^{Tab}
    • Depois de pressionar ALT + SHIFT + 9, continue segurando ALT + SHIFT e navegação usando kjhl: D

WIN ALT + TAB com VIM-NAVIGATIONKEYS ( não pode, porque o menu fecha )

  • ALT+TAB
    • Agora continue segurando Alt e, em seguida, segure Shift e agora comece a usar as teclas de navegação mimim vim que é kjhl , observe a janela desaparece :(
NOTA
  • Teclas comuns são chaves típicas usadas para funções básicas como cortar / copiar / colar e alternar guias, que usam apenas uma combinação de um modificador e uma única tecla pressionada, a menos que seja para navegação no Windows Virtual Desktop
    • Por exemplo, a comutação do Windows Virtual Desktop usa CTRL + WIN + LEFT / RIGHT
    • É uma boa ideia continuar a usar as teclas de atalho normais e não as personalizar demasiadamente, a menos que você possa provar por que o seu caminho é melhor
  • Qual é a diferença entre teclas de navegação curtas e longas?
    • chaves de navegação de curta duração: cima / baixo / esquerda / direita
    • longnavgiation-keys: home / end / pgup / pgdn
Fohrums
fonte