最近看到这个Everything插件GitHub - Chaoses-Ib/IbEverythingExt: Everything 拼音搜索、快速选择扩展Everything 拼音搜索、快速选择扩展. Contribute to Chaoses-Ib/IbEverythingExt development by creating an account on GitHub.https://github.com/Chaoses-Ib/IbEverythingExt#%E9%85%8D%E7%BD%AE,实现了简拼和全拼的拼音搜索,然后就想,反正大部分时候都用拼音搜索了,那如果能everything打开默认是英文输入法不是方便很多?结果找到了AHK这个神奇的软件,实现了这个功能,感谢“步子大了吧”
在Win10下使用AutoHotKey为软件指定默认输入法_步子大了吧的博客-CSDN博客https://blog.csdn.net/wangpeng246300/article/details/106109720 我按着这个教程成功让Everything打开默认就是英文输入法,解决了一个问题,原博写的是Win10下(话说Win 10好像自带有这个功能来着?),我Windows 7 64位下用AutoHotKey V1是可以实现的。设置完Everything以后其他比较常用的软件我也给指定了默认的输入法,这样就省了好多切换输入法的时间。
然后又偶尔会遇到输入法在大写状态,打了几个字母以后又要切换到小写删掉重新输入,想着既然可以指定输入法,那能不能再来个指定大小写呢?搜索良久,没有找到解决办法,又想到之前看到的smartcapslock这个软件
SmartCapsLock (door2windows.com)https://www.door2windows.com/smartcapslock/ 但之前下载安装就运行不了,然后想说,有没有可能用AutoHotKey可以实现类似的先输入再改大小写呢?如果能实现,也不错啊。
继续搜索,看到了这个,感谢“liuyukuan”
[AHK]将选中字符中的字母全部转换成【大写 / 小写 / 首字母大写】_liuyukuan的博客-CSDN博客https://blog.csdn.net/liuyukuan/article/details/54584035?ops_request_misc=&request_id=&biz_id=102&utm_term=AutoHotKey%20%20%E9%BB%98%E8%AE%A4%20%E5%A4%A7%E5%86%99&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-5-54584035.142%5Ev42%5Enew_blog_pos_by_title,185%5Ev2%5Econtrol 试了下,果然是可以的,但有个问题,他原来的是采用F7 F8 F9这三个按键来实现的,我这三个按键已经通过另外一个软件,改为了“剪切,复制和粘贴”,用了好多年了不想改这个习惯,所以我就想,用哪三个键代替呢?作为一个快捷键(+快捷操作)狂人,能利用的键好像所剩无几了……
又想到我用了好多年的切换音量的方式,用3RVX设置了快捷键Alt+鼠标滚轮上/下实现音量的加减,那不如就设为按住Capslock键加鼠标滚轮上下实现切换至全部大写/全部小写,然后还有个鼠标中键,可以用来设置为切换到首字母大写(这个比较不常用,刚好我也不太爱按鼠标中键)
然后问题来了,我不会代码……
大写键是啥,鼠标滚轮,中键又是啥搜索了一下,找到陈浩learning写的这个autohotkey鼠标滚轮_陈浩learning的博客-CSDN博客_autohotkey 滚轮,里面刚好有,然后再查了下Autohotkey的按键列表
最后让我做到了,代码如下:
;tmplinshi
; 功能: 切换选中文字大小写
; 参数: Mode - 可以为 L (小写)、U (大写)、T (首字母大写)
;~ 兼容autohotkey 2.0
;sunwind
;~ http://blog.csdn.net/liuyukuan/article/details/54584035
;~ 增加连字符支持windows-vista
CapsLock & WheelDown::SwitchSelCase("L") ; 选中文字切换为小写
CapsLock & WheelUp::SwitchSelCase("U") ; 选中文字切换为大写
CapsLock & MButton::SwitchSelCase("T") ; 选中文字切换为首字母大写
f10::
param=%1%
SwitchSelCase(param)
return
SwitchSelCase(Mode) {
clipBak := ClipboardAll ; 备份剪贴板
Clipboard := "" ; 清空剪贴板
Send, ^c ; 发送 ctrl+c 复制选中文字
ClipWait, 1 ; 等待复制完毕
selText := Clipboard
Loop, Parse, selText, %A_Space%_`,|;-!`.
{
; 计算在这个字段末尾分隔符的位置.
Position += StrLen(A_LoopField) + 1
; 获取解析循环中找到的分隔符.
Delimiter := SubStr(selText, Position, 1)
str1:= Format("{:" Mode "}", A_LoopField)
out:=out . str1 . Delimiter
}
Clipboard :=out
ClipWait, 1
Send, ^v
Sleep, 500 ; 防止没有粘贴完毕剪贴板就被恢复了
Clipboard := clipBak ; 恢复剪贴板
}