【AutoHotkey】一种适合敲代码&&可以用左手完成大部分功能的组合键设计
故事一
使用键盘,需要两只手;
使用鼠标,还需要一只手;
总共三只手。
而你,只有两只手
所以,你需要第三只手(bushi)
所以,通常是左手使用键盘,而右手控制鼠标。
但Enter、BackSpace等一些常见按键经常迫使你使用右手去按。
故事二
敲代码时,你经常需要向前/向后移动文本
偶尔还要选定它们
这迫使你使用右手
移动大老远去按上下左右方向键移动文本
那你能怎么办呢?
使用AutoHotkey
脚本说明
原先的大写键,变为了快速按两下才能打开/关闭
相应的,大写+某个按键的组合可以起到不同的效果
如果要输入大写字母,建议更多的使用 Shift+字母 输入
常用的几个按键(这么写只是利于理解,并不完全正确,请细看代码):
大写+F 回车
大写+C Backspace
大写+I Backspace
大写+U/O 向左/向右选择一个词语
大写+H/J/K/L 向左/下/上/右移动(这样是为了和Vim相对应)
大写+P/分号 HOME/END
以上三个,如果带上左Alt,即 大写+左Alt+按键 还可以选定文本
这是我目前使用的ahk脚本
先干正事,上代码
;双击大写Caps Lock(切换大小写)
*capslock::
if Pressescount > 0
{
Pressescount += 1
return
}
Pressescount = 1
SetTimer,caps, 200
return
caps:
SetTimer,caps, off
if Pressescount = 2
{
SetCapslockState,% GetKeyState("Capslock", "T") ? "off" : "on"
}
Pressescount = 0
return
;大写 + 键盘HJKL移动上下左右(加Alt可以选定)
CapsLock & h::
if GetKeyState("LAlt", "P")
SendInput, +{Left}
else
SendInput, {Left}
Return
CapsLock & l::
if GetKeyState("LAlt", "P")
SendInput, +{right}
else
SendInput, {right}
Return
CapsLock & k::
if GetKeyState("LAlt", "P")
SendInput, +{up}
else
SendInput, {up}
Return
CapsLock & j::
if GetKeyState("LAlt", "P")
SendInput, +{down}
else
SendInput, {down}
Return
;大写 + 键盘UO移动单词(加Alt可以选定)
CapsLock & u::
if GetKeyState("LAlt", "P")
SendInput, +^{Left}
else
SendInput, ^{Left}
Return
CapsLock & o::
if GetKeyState("LAlt", "P")
SendInput, +^{Right}
else
SendInput, ^{Right}
Return
;大写+p;回到头尾
CapsLock & p::SendInput, {Home}
CapsLock & `;::SendInput, {End}
;Alt+p;选定头尾
LAlt & p::SendInput,+{Home}
LAlt & `;::SendInput,+{End}
;大写 + 键盘I退格
CapsLock & i::SendInput, {Backspace}
;[对于按键不足的分体键盘的额外按键补充]
;大写 + N(}) / M({) / ,([) / .(])
CapsLock & n::SendInput, {}}
CapsLock & m::SendInput, {{}
CapsLock & ,::SendInput, [
CapsLock & .::SendInput, ]
;[对于按键不足的分体键盘的额外按键补充]
;大写 + /(符号~) / "(符号`)
CapsLock & /::SendInput, ~
CapsLock & '::SendInput, ``
;大写 + WASD控制鼠标移动[+左Alt(键盘上下左右)]
CapsLock & a::
if GetKeyState("LAlt", "P")
SendInput, {left}
else
MouseMove, -21,0,0,R
Return
CapsLock & d::
if GetKeyState("LAlt", "P")
SendInput, {right}
else
MouseMove, 21,0,0,R
Return
CapsLock & s::
if GetKeyState("LAlt", "P")
SendInput, {down}
else
MouseMove, 0,21,0,R
Return
CapsLock & w::
if GetKeyState("LAlt", "P")
SendInput, {up}
else
MouseMove, 0,-21,0,R
Return
;大写 + 鼠标左(e)、右键(q)
CapsLock & e::LButton
CapsLock & q::RButton
;左Alt+ 2关闭当前窗口(alt+F4)
LAlt & 2::SendInput, !{F4}
;大写 + 空格 打开GOOGLE(如果你不能访问,可以把它换成Bing或者别的什么)
CapsLock & space::Run https://www.google.com/
;大写 + f 回车Enter
CapsLock & f::SendInput, {Enter}
;大写 + 标签顺序(g)逆序(r)切换(常用于浏览器标签页,或者是QQ的聊天会话切换)
CapsLock & g::^Tab
CapsLock & r::^+Tab
;大写 + Z(idea中下移代码) / X(idea中上移代码)
;这里的idea是一种JAVA的IDE
CapsLock & z::SendInput, ^+{down}
CapsLock & x::SendInput, ^+{up}
;大写 + C(Backspace)
CapsLock & c::SendInput,{Backspace}
;大写 + B(idea中去before的跳转点) / V(idea中去after的跳转点)
CapsLock & v::SendInput,^!{left}
CapsLock & b::SendInput,^!{right}
;F12(大写+t)和F11(大写+alt+t)(浏览器调试代码时,很常用)
CapsLock & t::
if GetKeyState("LAlt", "P")
SendInput, {F11}
else
SendInput, {F12}
Return
;F1(大写+1)(对特殊键盘使用,如果你不是特殊键盘,可以把注释换成它)
CapsLock & 1::SendInput, {F1}
;快速注释(大写+4)
CapsLock & 4::SendInput, ^/
;快速选择 y(大写+2) / n(大写+3)(YN字母经常使用,但都要用右手去按,移到左手会方便很多)
CapsLock & 2::y
CapsLock & 3::n
这套组合键我调整了也有两三年了,应该不需要太多调整了
注:
如果你不习惯Vim的上下左右
可以使用IKJL作为上下左右,H作为删除
热门相关:斗神战帝 大神你人设崩了 豪门闪婚:帝少的神秘冷妻 寂静王冠 寂静王冠