当按下大写锁定时,空格键返回下划线

ken*_*dds 4 windows-7 keyboard-shortcuts speed autohotkey

基本上,我正在寻找的是:什么时候CapsLock开始我想Space返回_并且我想要Shift+Space返回

详细信息:这是我询问的有关将+键重新映射为下划线 ( ) 的问题的延续。我得到了一个很好的答案,但我发现它有点复杂,尤其是当我有一个懒惰的小指时,它不喜欢及时拿走钥匙让我按下钥匙。所以现在我想知道是否有人知道解决方案,以便在打开时可以重新映射到下划线。而且,更好的是,如果打开并且我点击+组合,它将强制使用空格字符。那有意义吗?继续并要求澄清。ShiftSpace_ShiftSpaceSpaceCapsLockCapsLockShiftSpace

哦,对了,我之前问的问题的解决方案可能有能力做到这一点。它被称为AutoHotKey。如果那样做,那我就很满意了!谢谢!

Den*_*nis 11

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
Run Code Online (Sandbox Code Playgroud)

它能做什么:

  • 如果CapsLock激活:

    • Space 插入空格。

    • Shift+Space插入下划线。

  • 如果CapsLock处于活动状态:

    • Space 插入下划线。

    • Shift+Space插入空格。

如果你想Space正常的行为时,CapsLock积极的,只是消除了第一个块。

如何使用:

  1. 下载并安装最新版本。

  2. underscore.ahk使用您喜欢的文本编辑器将上述脚本另存为。

  3. 双击该文件以运行脚本。

  4. 如果您愿意,请将脚本(或指向它的链接)复制到Startup文件夹中。

这个怎么运作:

  • +Space:: ... return按下+...时执行。ShiftSpace

    +Space:: ... return按下...时执行Space(无修饰符)。

  • state := GetKeyState("CapsLock", "T")检查是否CapsLock处于活动状态。

    • 如果是,state则是true并且if state执行之后的块。

    • 如果不是,state则是falseelse执行后的块。

  • SendPlay X插入字符(序列)X

    你不能Send在这里使用,因为它会递归地触发脚本,导致无限循环。

  • return 在当前点终止脚本。

    第二个return是可选的,第一个不是。如果没有后者,Shift+Space会导致两个块都被执行。