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, CapsLock indesejavelmente ativa

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

    
por PHPst 01.11.2012 / 06:28

2 respostas

2

adicione isso ao topo do seu script.

SetCapsLockState, AlwaysOff

!^CapsLock::CapsLock

Ele deve interromper todos os eventos do Capslock que você não criou.

link

    
por 14.01.2013 / 22:05
0

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

Então, acidentalmente me deparei com 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 o meu achado acidental.

AHK VIM NAVEGAÇÃO HOTKEY

If these keys don't fit you comfortably, pls. change it to your liking. I just prefer to have shortnavigation-keys (up/down/left/right) matching vim and had put customization only for the longnavigation-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}
    • Uma vez 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 )

  • %código%
    • Agora continue segurando Alt e então segure Shift e agora comece a usar as teclas de navegação mimim vim que é kjhl , observe que a janela desaparece: (
NOTA
  • As teclas comuns são teclas típicas usadas para funções básicas, como cortar / copiar / colar e alternar guias, e todas usam apenas uma combinação de um modificador & uma única tecla, a menos que seja para navegação no Windows Virtual Desktop
    • por exemplo. A alternância do Windows Virtual Desktop usa CTRL + WIN + LEFT / RIGHT
    • é uma boa ideia continuar a utilizar as teclas de atalho normais e não as personalizar demasiadamente, a menos que possa provar porque é que o seu caminho é melhor
  • Qual é a diferença entre teclas de navegação curtas e longas?
    • shortnavigation-keys: cima / baixo / esquerda / direita
    • longnavgiation-keys: home / end / pgup / pgdn
por 19.09.2018 / 01:39