快速提升打字速度技巧之autohotkey :实现space+I/J/K/L上下左右移动文本光标,解决键盘上面“上下左右“按键离得远的问题,解决键盘上没有PgUp,PgDn,End,Home键

说明:

由于键盘上面的上下左右键离标准键盘的距离比较远,而且大部分的键盘上面的上下左右键各不相同,所有.即使我们学了标准的指法去敲键盘,也是得很费劲去摸到上下左右键,而且,换了键盘还需要重新适应.所以可以通过autohotkey脚本将上下左右按键映射到常用的26个字母上.即使换了键盘,也可以快速上手.

脚本不仅将上下左右按键进行了映射,还加入了其他较远并且常用的键,将它们全部映射到右手上面.

此脚本目的

  • 解决backSpace太远的问题

  • 解决上下左右键太远问题

  • 解决键盘没有PgUp和PgDn,或者需要按下fn键才可以转化,麻烦

  • 解决键盘没有Home和End,或者需要按下fn键才可以转化,麻烦

总之,就是为了尽可能的减少手指的移动,实现快速编辑文字,加快打字速度.

此脚本设计思路

  • 选择space作为热键,是因为左右手大拇指都放在这个键上面,可以将这两个手指有效利用起来。而那些‘a’、‘capslock’等,这些键也是有考虑到的,但是a键会影响自己打字输入,比如你输入air,就会连着按下ai,触发向上的命令。如果将capslock作为热键,就会导致左手小拇指负担加重,而且经常将“capslock”和“shift混淆”。

  • 当使用上下左右那边的按键的时候,用左手大拇指去按空格。右手去按ijkl实现上下左右。当使用系统的快捷键的时候,用右手大拇指去按空格。左手去按cv实现复制粘贴。左右手大拇指相互配合,基本不需要再移动手腕和手臂,就可以实现所有文字、快捷键输出。

  • 同时,由于回退键和上下左右按键被映射到右手的其他手指,有效缓解了小拇指的压力.再也不用敲代码,敲到小手指疼了.

  • 同样的,可以继续用这种设计思路,去设计其他的快捷键,比如你可以实现";"+其他按键来实现各种快捷键,因为自己的右手小拇指一直放在“;”上面,而且他不是26个字母,不影响正常打字输出.

当然,此脚本是需要学习成本的。但是熟练之后,效率倍增。

auto hot key 下载相关链接:

官网:AutoHotkey

官方中文文档:Autohotkey中文网

中文社区: AutoAHK 

代码

可以直接新建一个ahk文件,把内容直接复制进去,即可使用.

;  ---------------------------Space+i/j/k/l实现上下左右
;;; 说明,Space+以下按键:
; ijkl实现上左下右
; u和o分别实现先前删除和向后删除
; h和;分别实现前进一个单词和后退一个单词
; n和m分别实现跳转到到行首和行尾
; ,和.分别实现到跳转到段首和段尾并选中
; 按住Space键+回退键可以实现删除后面单词.(不习惯可以先用这种方式来,后面基本都用u和o来删除)
; Space & 8选中当前单词
; 按住Space键"+"键可以实现选中单词并变为大写.
; 按住shift,同样可以激活选中文本的功能.
;;; ----------------------------------------------------



$space:: send {Space}            ;当且仅当space键被按下时,才发送{Space}命令,防止长按space键时,发送多个{Space}命令.
Space & i:: Send, % (GetKeyState("Shift", "P") ? "+{Up}" : "{Up}")       ;获取shift的状态,如果shift也按下,激活选中的功能.
Space & j:: Send, % (GetKeyState("Shift", "P") ? "+{Left}" : "{Left}")
Space & k:: Send, % (GetKeyState("Shift", "P") ? "+{Down}" : "{Down}")
Space & l:: Send, % (GetKeyState("Shift", "P") ? "+{Right}" : "{Right}")
Space & h:: Send, % (GetKeyState("Shift", "P") ? "+^{Left}" : "^{Left}")
Space & `;:: Send, % (GetKeyState("Shift", "P") ? "+^{Right}" : "^{Right}")
Space & n:: Send, % (GetKeyState("Shift", "P") ? "+{Home}" : "{Home}")
Space & m:: Send, % (GetKeyState("Shift", "P") ? "+{End}" : "{End}")     
Space & ,:: Send, % (GetKeyState("Shift", "P") ? "+{PgUp}" : "{PgUp}")
Space & .:: Send, % (GetKeyState("Shift", "P") ? "+{PgDn}" : "{PgDn}")

; 删除功能
Space & o:: Send,{Delete}
Space & u:: Send,{BackSpace}
Space & BackSpace:: Send,{Delete}

; 系统快捷键
Space & f:: Send,^c      ;复制
Space & g:: Send,^v      ;粘贴
Space & d:: Send,^d      ;复制并粘贴
Space & x:: Send,^x      ;剪切
Space & s:: Send,^s      ;保存
Space & c:: Send,^a      ;全选
Space & v:: Send,^z      ;撤销
Space & y:: Send,^y      ;取消撤销
Space & t:: Send,^f      ;搜素

脚本说明:

此脚本使用ahk v1版本

;  ---------------------------Space+i/j/k/l实现上下左右
;;; 说明,Space+以下按键:
; ijkl实现上左下右
; u和o分别实现先前删除和向后删除
; h和;分别实现前进一个单词和后退一个单词
; n和m分别实现跳转到到行首和行尾
; ,和.分别实现到跳转到段首和段尾并选中
; 按住Space键+回退键可以实现删除后面单词.(不习惯可以先用这种方式来,后面基本都用u和o来删除)
; Space & 8选中当前单词
; 按住Space键"+"键可以实现选中单词并变为大写.
; 按住shift,同样可以激活选中文本的功能.
;;; ----------------------------------------------------

先对space做特殊处理

$space:: send {Space}

当且仅当space键被按下时,才发送{Space}命令,目的是:防止长按space键时,发送多个{Space}命令.

组合按键代码

Space & i:: Send, % (GetKeyState("Shift", "P") ? "+{Up}" : "{Up}")       ;获取shift的状态,如果shift也按下,激活选中的功能.
Space & j:: Send, % (GetKeyState("Shift", "P") ? "+{Left}" : "{Left}")
Space & k:: Send, % (GetKeyState("Shift", "P") ? "+{Down}" : "{Down}")
Space & l:: Send, % (GetKeyState("Shift", "P") ? "+{Right}" : "{Right}")
Space & h:: Send, % (GetKeyState("Shift", "P") ? "+^{Left}" : "^{Left}")
Space & `;:: Send, % (GetKeyState("Shift", "P") ? "+^{Right}" : "^{Right}")
Space & n:: Send, % (GetKeyState("Shift", "P") ? "+{Home}" : "{Home}")
Space & m:: Send, % (GetKeyState("Shift", "P") ? "+{End}" : "{End}")     
Space & ,:: Send, % (GetKeyState("Shift", "P") ? "+{PgUp}" : "{PgUp}")
Space & .:: Send, % (GetKeyState("Shift", "P") ? "+{PgDn}" : "{PgDn}")

删除的按键代码:

; 删除功能
Space & o:: Send,{Delete}
Space & u:: Send,{BackSpace}
Space & BackSpace:: Send,{Delete}

系统快捷键

Space & f:: Send,^c      ;复制
Space & g:: Send,^v      ;粘贴
Space & d:: Send,^d      ;复制并粘贴
Space & x:: Send,^x      ;剪切
Space & s:: Send,^s      ;保存
Space & c:: Send,^a      ;全选
Space & v:: Send,^z      ;撤销
Space & y:: Send,^y      ;取消撤销
Space & t:: Send,^f      ;搜素

Space & 8选中当前单词  

Space & 8:: 
    send,^{Right}
    Sleep, 50
    Send, ^+{Left}
return

Space +"+":把选中的单词全大写

Space & +::
    ClipSaved := ClipboardAll   ; 保存当前剪贴板内容
    Clipboard := ""             ; 清空剪贴板
    Send ^c                     ; 复制选中的文本
    ClipWait, 1                 ; 等待剪贴板内容
    if ErrorLevel
        return
    StringUpper, Clipboard, Clipboard  ; 将剪贴板内容转换为大写
    Send ^v                     ; 粘贴大写后的文本
    Clipboard := ClipSaved      ; 恢复剪贴板内容
    ClipSaved := ""             ; 清空保存的剪贴板内容
return

参考文章:

阿让的AutoHotkey十年使用总结和脚本分享 – AutoAHK

Ahk之单键热键思路与运用详解 – AutoAHK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值