[AHK2] 让终止符决定热字串

发布时间 2023-08-23 15:37:29作者: 落寞的雪

介绍

这是一种在使用同一热字串的情况下生成不同结果的技巧。

例子

下面是一个例子,用于生成三种样式的 CommonJs 导入语句。

它在我写nodeJs时可以省下些许麻烦。


根据终止符的不同,会生成三种导入语句:

  • 空格 -> 使用默认名app,导入模块自行输入。
  • 分号 -> 变量名和模块名相同,输入变量名后按下终止符不全模块名。
  • 其他 -> 变量名和模块名都自行输入。
::;no:: ; 生成三种样式的 CommonJs 导入语句
{
    if GetKeyState('Space', 'P') { ; 如果空格作为结束符,使用默认名app
        Send "const app = require('');{Left 3}"
        return
    }
    if GetKeyState(';', 'P') { ; 分号结尾使用相同的名字
        Send "const = require('');{Left 14}"
        ih := InputHook("V T5 L10 C", "{Enter};{Tab}")
        ih.Start()
        ih.Wait()
        Send "{BS}{Space}{Right 11}" ih.Input
        Sleep 100
        Send "{End}{Enter}"
        return
    } else { ; 其他endchars自行输入
        Send "const = require('');{Left 14}"
        if KeyWait('Space', 'D T10') { ; 跳到require内
            Send "{Right 11}"
            return
        }
    }
}