Question Lorsque le verrouillage des majuscules est activé, la barre d'espace renvoie un trait de soulignement


En gros, ce que je recherche, c'est: quand Verrouillage des majuscules est sur je veux Espace revenir _ et je veux Décalage + Espace revenir .

Détail: C'est une sorte de continuation de cette question J'ai posé des questions sur le remappage de la Décalage + Espace les touches doivent être un trait de soulignement (_). J'ai eu une bonne réponse mais j'ai trouvé que c'était un peu compliqué surtout quand j'ai un petit paresseux qui n'aime pas se prendre du Décalage clé dans le temps pour moi de frapper la Espace clé. Alors maintenant, je me demande si quelqu'un sait d'une solution pour le rendre si le Espace la clé pourrait remapper pour souligner quand Verrouillage des majuscules est activé. Et encore mieux si Verrouillage des majuscules est sur et je frappe le Décalage + Espace la combinaison forcera un caractère spatial. Cela a-t-il du sens? Allez-y et demandez des éclaircissements.

Oh, au fait, la solution à la question que j'ai posée plus tôt peut avoir le pouvoir de le faire. C'est appelé AutoHotKey. Si cela se fait, alors je suis totalement satisfait de ça! Merci!


4
2018-05-03 14:37


origine




Réponses:


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

Ce qu'il fait:

  • Si Verrouillage des majuscules est ne pas actif:

    • Espace insère de l'espace.

    • Décalage + Espace insère le soulignement.

  • Si Verrouillage des majuscules c'est actif:

    • Espace insère le soulignement.

    • Décalage + Espace insère de l'espace.

Si tu veux Espace se comporter normalement quand Verrouillage des majuscules est ne pas actif, il suffit d'éliminer le premier bloc.

Comment utiliser:

  1. Télécharger et installez la dernière version.

  2. Enregistrez le script ci-dessus en tant que underscore.ahk, en utilisant votre éditeur de texte préféré.

  3. Double-cliquez sur le fichier pour exécuter le script.

  4. Si vous le souhaitez, copiez le script (ou un lien vers celui-ci) dans le Startup dossier.

Comment ça marche:

  • +Space:: ... return s'exécute ... quand Décalage + Espace est pressé

    +Space:: ... return s'exécute ... quand Espace est pressé (sans modificateurs).

  • state := GetKeyState("CapsLock", "T") vérifie si Verrouillage des majuscules c'est actif.

    • Si c'est, state est true et le bloc après if state est exécuté.

    • Si ce n'est pas le cas, state est false et le bloc après else est exécuté.

  • SendPlay X insère le caractère (séquence) X.

    Vous ne pouvez pas utiliser Send ici, car cela déclencherait le script récursivement, ce qui aboutirait à une boucle infinie.

  • return termine le script au point actuel.

    La deuxième return est facultatif, le premier ne l'est pas. Sans ce dernier, Décalage + Espace causerait tous les deux blocs à exécuter.


11
2018-05-03 14:54



@ kentcdodds: Vous devez remplacer le script précédent avec celui-ci. - Dennis
Pensez-vous que vous pouvez éditer la réponse pour supprimer la partie avec capslock désactivée et shift + inserts d'espace soulignement? Une partie de mon problème est que j'ai un petit paresseux, alors quand je discute ou que je tape normalement, j'insère accidentellement un trait de soulignement. Donc, fondamentalement, je veux une fonctionnalité normale lorsque le verrouillage des majuscules est désactivé. Merci. - kentcdodds
J'ai essayé le script à plusieurs reprises avec quelques variantes et il semble que ma fonction de touche d'espace soit complètement désactivée ... - kentcdodds
@ kentcdodds: J'ai essayé les deux versions (avec et sans le premier bloc) et elles fonctionnent bien. Fermez complètement AutoHotKey et ne chargez que ce nouveau script pour vous assurer que l'ancien script ne fonctionne plus. Ils ne travailleront pas ensemble. - Dennis