开发原因
首先讲一下为什么用这个自动化执行脚本?
存在的问题:
vim作为linux自带唯一的编辑器, 开发时, 不得不用, 但是他的按键模式复杂, 就比如最简单的复制黏贴, 都需要按下好几次esc按键和插入, 极大的增加了初学者的学习成本, 并且在掌握了更快的键盘方案后, 就感觉vi还是略显笨重.
实现功能
但是没办法, 我们还要用, 所以, 我们就把最简单的命令,进行键盘映射, 利用autohotkey来和vi命令进行交互, 来实现我们的功能:
注意:想快速使用,请直接浏览一遍,然后跳转后续链接下载体验
(1)退回一般模式: Alt 加 Q
我们按下alt+q, 但是vim接受到 esc. 因为esc太远了, 麻烦, 所以对此进行映射
代码如下:
;(1)ESC: 监听 Alt+q 的组合键 //核心命令
!q::
Send {Esc}
return
(2)选中可视化: Alt 加 G
现象: 按下 Alt + G 后,依次释放 Esc、大写 V、Home 按键
vi中, 一般模式下按下 v, 就可以进入可视化模式, 也就是进入选中模式, 类似window下的鼠标选区, 此时我们再通过 上下左右移动就可以选中了(配合下面的复制,剪切,删除等使用)
代码:
;(2)选中可视化:按下 Alt + G 后,依次释放 Esc、大写 V、Home 按键
!g::
Send {Esc}
Sleep 50 ; 稍作延时,确保按键被正确处理
Send {V down} ; 按下大写 V
Sleep 50 ; 稍作延时,确保按键被正确处理
Send {V up} ; 释放大写 V
Sleep 50 ; 稍作延时,确保按键被正确处理
Send {Home}
return
(3)剪切: Alt 加 X
现象:按下 Alt + X 后,依次释放 X、大写A
vi中, 在一般模式下, 选中选区后,按下x,就会剪切所选部分, 此时我们如果还要编辑代码的话, 就需要回到编辑模式, 所以我们接着自动按下大写A
代码:
;(3)vi剪切:按下 Alt + X 后,依次释放大写 X、大写 A
!x::
Send {X down}
Sleep 50
Send {X up}
Sleep 50
Send {A down}
Sleep 50
Send {A up}
return
(4)复制: Alt加 C
现象:按下 Alt + C 后,依次释放 yy , 然后大写A
解释: 一般模式下, 在视觉模式选中时, 按下yy是复制, 所以我们这个需要结合 视觉模式的alt + g用, 选区选完, 然后我们按下alt +c ,就会发送yy , 就可以复制选区, 从而达到自由复制的目的, 后面我们复制完了, 就直接自动进入编辑模式, 大写A,就是在行末进行编辑, 不耽搁事情.
代码:
;(4) 复制:按下 Alt + C 后,依次释放 yy , 然后大写A
!c::
Send {y down}
Sleep 50
Send {y up}
Sleep 50
Send {A down}
Sleep 50
Send {A up}
return
(5)粘贴:Alt加V
现象:粘贴:按下 Alt + V 后,依次释放 Esc、大写 P、大写 A
解释: 我们不管处于什么模式, 直接进入一般模式, 所以 按下alt+v后, 直接释放esc , 然后 利用vim的P进行粘贴, 粘贴完后, 直接进入行末, 进行编辑,所以再输出 大写A
代码:
;(5) 黏贴:按下 Alt + V 后,依次释放 Esc、大写 P、大写 A
!v::
Send {Esc}
Send {P}
Send {A}
return
(6)撤销: Alt加Z
现象:按下 Alt + z 后,依次释放 Esc、u、大写 A
解释:一般模式下,按下u是撤销, 所以我们先发送esc退回一般模式, 然后u退回一般模式, 然后再按下 A, 光标进入行末的编辑模式
代码:
;(6) 撤销:按下 Alt + z 后,依次释放 Esc、u、大写 A
!z::
Send {Esc}
Send {u}
Send {A}
return
(7)保存: Alt加W
现象: 按下 Alt加W , 然后释放esc , 冒号, w,回车, 大写A
解释: 按下 Alt加W , 然后释放esc ,进入一般模式, 发送冒号: 然后发送w , 回车, 这样就保存了, 但是我们还想接着进行编辑, 所以再加一个 A,
;(7)保存: alt +w
!w::
Send {Esc}
Sleep 50
Send {:} ; 发送英文冒号
Sleep 50
Send {w down}
Sleep 50
Send {w up}
Sleep 50
Send {Enter} ; 发送回车键
Sleep 50
Send {A down}
Sleep 50
Send {A up}
return
(8)保存退出: Alt加R
现象:按下alt+r, 释放esc, 冒号, wq, 回车
解释:esc进入一般模式, 冒号输入wq命令, 回车执行指令
;(8) alt + r 保存退出:
!r::
Send {Esc}
Sleep 50
Send {:} ; 发送英文冒号
Sleep 50
Send {w down}
Sleep 50
Send {w up}
Sleep 50
Send {q down}
Sleep 50
Send {q up}
Sleep 50
Send {Enter} ; 发送回车键
return
(9)全选:Alt加A
现象: 按下 Alt + A 后,依次释放 Esc 按键,输出小写 v,然后连续两个 gg,接着是 Ctrl + End
解释: esc进入一般模式, 然后gg,光标移动到开头, v进入视觉模式, 后面就可以进行自由复制, 我们这里是要全选, 所以光标直接位移到末尾即可, ctrl+end这个是自带快捷键
代码:
; (9)全选:按下 Alt + A 后,依次释放 Esc 按键,输出小写 v,
; 然后连续两个 gg,接着是 Ctrl + End
!a::
Send {Esc}
Sleep 50
Send {g}
Send {g}
Sleep 50
Send v
Sleep 50
Send {CtrlDown}{End}{CtrlUp}
return
(10)删除选中:alt+backspace
现象:按下alt+backspace, 在视觉模式选中后,释放 del, 可以删除选中, 然后A进入编辑模式
解释:没什么好解释的, O(∩_∩)O哈哈~
;(10)删除
!BS::
Send {Del}
Sleep 50
Send {A}
return
脚本使用教程
看b战视频:【打字的那些事之快速移动光标】 https://www.bilibili.com/video/BV1tg411W7YQ/?share_source=copy_web&vd_source=1de4617d8462b141bb53b6be82555d31
另一种方案,看上篇博客:
https://blog.csdn.net/qq_57484399/article/details/140478467
两个快捷键可执行文件链接:
https://ww0.lanzoul.com/b00g2gap1c
密码:8kd4
失效,联系qq2958360390