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)


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.