Questão Quando o Caps Lock é pressionado, a barra de espaço retorna sublinhado


Basicamente, o que estou procurando é: quando Caps Lock está ligado eu quero Espaço para retornar _ e eu quero Mudança + Espaço para retornar .

Detalhe: Isso é uma espécie de continuação de essa questão Eu perguntei sobre o remapeamento do Mudança + Espaço chaves para ser um sublinhado (_). Eu tenho uma ótima resposta, mas eu achei que fosse um pouco complicado, especialmente quando eu tenho um mindinho preguiçoso que não gosta de se Mudança chave no tempo para eu acertar o Espaço chave. Então, agora eu estou querendo saber se alguém sabe de uma solução para torná-lo tão Espaço chave poderia remapear para sublinhar quando Caps Lock está ligado. E, melhor ainda, se Caps Lock está ligado e eu bati o Mudança + Espaço combinação vai forçar um caractere de espaço. Isso faz sentido? Vá em frente e peça esclarecimentos.

Ah, a propósito, a solução para a pergunta que fiz anteriormente pode ter o poder de fazer isso. É chamado AutoHotKey. Se isso acontecer, então estou totalmente feliz com isso! Obrigado!


4


origem




Respostas:


Script AutoHotkey:

+Space::
state := GetKeyState("CapsLock", "T")
if state
    SendPlay {Space}
else
    SendPlay _
return

Space::
state := GetKeyState("CapsLock", "T")
if state
    SendPlay _
else
    SendPlay {Space}
return

O que faz:

  • E se Caps Lock é não ativo:

    • Espaço insere espaço.

    • Mudança + Espaço insere sublinhado.

  • E se Caps Lock está ativo:

    • Espaço insere sublinhado.

    • Mudança + Espaço insere espaço.

Se você quiser Espaço se comportar normalmente quando Caps Lock é não ativo, basta eliminar o primeiro bloco.

Como usar:

  1. Baixar e instale a versão mais recente.

  2. Salve o script acima como underscore.ahk, usando o seu editor de texto favorito.

  3. Clique duas vezes no arquivo para executar o script.

  4. Se desejar, copie o script (ou um link para ele) no Startup pasta.

Como funciona:

  • +Space:: ... return executa ... quando Mudança + Espaço está pressionado.

    +Space:: ... return executa ... quando Espaço é pressionado (sem modificadores).

  • state := GetKeyState("CapsLock", "T") verifica se Caps Lock está ativo.

    • Se for, state é true e o bloco depois if state é executado.

    • Se não for, state é false e o bloco depois else é executado.

  • SendPlay X insere o caractere (sequência) X.

    Você não pode usar Send aqui, uma vez que acionaria o script recursivamente, resultando em um loop infinito.

  • return termina o script no ponto atual.

    O segundo return é opcional, o primeiro não é. Sem este último Mudança + Espaço poderia causar ambos blocos para ser executado.


11



@kentcdodds: Você tem que substituir o script anterior com este. - Dennis
Você acha que poderia editar a resposta para remover a peça com o capslock desativado e destacar as inserções do shift + space? Parte do meu problema é que eu tenho um mindinho preguiçoso, então quando eu estou conversando ou digitando normalmente eu acidentalmente insiro um sublinhado. Então, basicamente, eu quero funcionalidade normal quando o caps lock está desativado. Obrigado. - kentcdodds
Eu tentei o script várias vezes com algumas variações e parece apenas desligar minha funcionalidade de tecla espacial ... - kentcdodds
@kentcdodds: Eu tentei as duas versões (com e sem o primeiro bloco) e elas funcionam bem. Feche o AutoHotKey completamente e carregue apenas este novo script para garantir que o script antigo não esteja mais em execução. Eles não vão trabalhar juntos. - Dennis