前言

CapsLock,也就是键盘左边中间那个大写锁定。平时很少会用到,跟shift功能重复不谈,更多的时候还会带来各种额外的麻烦。 一直以来的都是一个非常碍事讨厌的存在。就是这么一个垃圾键,偏偏却占了最方便的辅助键位位置。万能神奇小软件AutoHotKey,程序员的好帮手,小拇指的大救星,提供了一个简单可靠的解决方案来帮助广大的程序员变废为宝。比起其他键盘改造方案,它不像Dvorak这类键盘映射,在你临时ShowTime总会添乱;也不像HHKB这类硬件外设,携带不便带还额外要钱。一个随身携带的小脚本,或者二百K的可执行文件。就可以把这个方便的小工具随身带着跑。有了它,妈妈再也不用担心我的打字。

功能概述:

把Capslock改造成了一个新的辅助按键(类似Ctr,Alt,Shift,Win)。提供类似Vim的光标操作,提供便捷的导航按键与删除控制。提供Windows风格的最常用编辑按键组合。提供常用程序快捷方式,提供简易窗口标签控制。当然最最重要的,Capslock本身映射到了ESC上,简直广大VIM党的福音。下面提供一种现成的设计方案供参考,并描述设计思路。各位当然还是自己怎么顺手怎么改。图省事当然也有现成的EXE和AHK脚本能用哈~。

设计思想:

  1. 导航键:

    

  h, I, j, k是VIM的传统导航方向键,但是必须在命令模式下才能使用。这就导致了任何希望移动光标的行为都要麻烦左手小拇指按一下ESC先。由于必须先摁ESC进入命令模式再移动光标,这样效率就不如两个键同时摁高。所以呢,将CapsLock+H, I, J, K改造为上下左右四个光标键,这样不仅提高了光标移动命令的效率,更重要的是可以直接在VIM的输入模式中移动光标,而且这种键位修改和传统VIM键位是不冲突的,可以在SSH中同时使用,效果拔群,堪称一大加速神器。同时呢,这几个按键映射在其他地方也管用,等于是将VIM的光标操作搬到整个操作系统中了。最后额外的特性就是:按下Alt再进行上述所有导航操作,等价于平时Shift+导航键的效果,可以选择文本块。也是非常方便的哟,为Vim的插入模式以及日常轻量级编辑提供了很不错的补充。

  1. 删除键

  这个没什么好说的了吧。CapsLock+{BNM,./}构成了六个删除键。好处是什么,就是前删和后删字符由最灵活的食指和中指负责,M<两个键按起来非常快捷。另外N和 . 对应的删除单词功能,等价于Vim中的db和dw,在日常编辑中也是较为高频的编辑命令。前删至顶和前删至底{Cplk+B/}可能用的不是太多,我正考虑是不是换成Build和注释的快捷键。

  1. 特殊字符

  

  CapsLock + 分号 被设计为回车,减少了回车时右手小拇指移动的距离。CapsLock+引号被设计为"=",因为这是编程中最常用的符号之一。Caps+括号被映射为圆括号,这下括号一家终于团圆了,不由留下了激动的泪水。还有最后出场的大Boss:就是CapsLock本体映射为Esc,单凭这一项功能,我就已经离不开AutoHotKey了,真是小拇指的解放者,腱鞘炎的大救星啊。谁用谁知道,这个可比脚踏板靠谱多了。当然除了ESC,其他的按键可能略有牵强,自己舒服就行。

  1. 上档

  

  这个毋需解释,以后按Shift的时候浪一点也无所谓了,键盘第二排的按键,CapsLock与上档键功能一致。但是我要说的是,这里其实改造空间最大了。除了指定其他快捷宏这类朴素用法,还可以写五种不同的键盘映射脚本适应不同的工作场景,用Capslock+1234切换,想想也是醉了。

  1. 编辑控制

  

  Windows已经用了十几年,复制粘贴剪切撤销这些快捷键已经成为 条件反射了怎么办?啊哈哈哈,ZXCVAY这几个使用频率最最高的Window编辑快捷键与Capslock合作的相当愉快,使用CapsLock+{X}与Ctr+{X}效果是一致的,但是左手小拇指就不用往下移动了,这一点与HHKB是一致的。而且还解决了按下Ctr+Y的时候需要两只手的问题,现在一只左手就可以掌控所有常用基本编辑命令了。

  1. 窗口控制

  

  CapsLock+QWS是三个特殊的窗口控制按键:CapsLock+Q是Quit,关闭窗口的意思,映射到{Alt+F4}。CapsLock+W是关闭当前标签,映射到{Ctr+W},CapsLock+S是Switch的意思,切换当前标签,映射到{Ctr+Tab}。这几个快捷方式非常常用,在IDE或者浏览器里都很好用。

  1. 特殊程序

  

最后剩下的几个按键都属于Hot Spot,可以把一些常用的程序或者命令丢在这里,提供我的配置作为参考:

F:find,映射Alt+F,再将Alt+F设置为Everything的“显示搜索窗口”上了,一键搜索文件,绝对是我用的最多的快捷方式之一。在Everything无效的时候,还可以作为“文件”菜单项的快捷键。

D: Dictionary,映射到Alt+D,同时将Alt+D设置为Bing词典的迷你词典唤出按键。查词非常方便

G:映射到Alt+G,并将Alt+G映射到GitHub Shell上。

E:映射到Explore,使用Bing搜索

R:Run Shell:打开Powershell

T:Text Editor:打开Notepad++

200K不到的小脚本,小程序。这么小巧玲珑的东西,我在OneNote里,OneDriver,百度盘,邮箱里都放了一份,在别的电脑上随用随下。真是方便。

最后分享一下下载链接吧。http://pan.baidu.com/s/14fWN8#path=%252FAutoHotKey

exe是按照上述配置的直接可以用的脚本文件。ahk是脚本源代码,顺便附带了AHK的程序本体。

为了防止被度娘吃掉,贴出脚本的文本版:

;;====================Feng Ruohang's AHK Script=====================;;
;;==================================================================;;
;;=========================CapsLock's Stuff=========================;;
;;==================================================================;;
SetCapsLockState, AlwaysOff;;=============================Navigator============================||
;===========================;U = PageDown
CapsLock & u::
if getkeystate("alt") = 0
Send, {PgUp}
else
Send, +{PgUp}
return
;===========================;I = Home
CapsLock & i::
if getkeystate("alt") = 0
Send, {Home}
else
Send, +{Home}
return
;===========================;O = End
CapsLock & o::
if getkeystate("alt") = 0
Send, {End}
else
Send, +{End}
return
;===========================;P = PageDown
CapsLock & p::
if getkeystate("alt") = 0
Send, {PgDn}
else
Send, +{PgDn}
return
;===========================;H = Left
CapsLock & h::
if getkeystate("alt") = 0
Send, {Left}
else
Send, +{Left}
return
;===========================;J = Down
CapsLock & j::
if getkeystate("alt") = 0
Send, {Down}
else
Send, +{Down}
return
;===========================;K = UP
CapsLock & k::
if getkeystate("alt") = 0
Send, {Up}
else
Send, +{Up}
return
;===========================;L = Right
CapsLock & l::
if getkeystate("alt") = 0
Send, {Right}
else
Send, +{Right}
return;;=============================Deletor==============================||
CapsLock & ,:: Send, {Del}              ; , = Del char after
CapsLock & .:: Send, ^{Del}             ; . = Del word after
CapsLock & /:: Send, +{End}{Del}        ; / = Del all  afterCapsLock & m:: Send, {BS}               ; m = Del char before;
CapsLock & n:: Send, ^{BS}              ; n = Del word before;
CapsLock & b:: Send, +{Home}{Del}       ; b = Del all  before; ;;============================Special Char==========================||
CapsLock & ':: Send, =                  ; ' = =
CapsLock & `;:: Send, {Enter}           ; ; = Enter
CapsLock & {:: Send, +9                 ; { = (
CapsLock & }:: Send, +0;               ; } = )
CapsLock & `:: Send, +``                ; Shift
CapsLock & 4:: Send, +4
CapsLock & 5:: Send, +5
CapsLock & 6:: Send, +6
CapsLock & 7:: Send, +7
CapsLock & 8:: Send, +8
CapsLock & 9:: Send, +9
CapsLock & 0:: Send, +0
CapsLock & -:: Send, +-
CapsLock & =:: Send, +=
CapsLock & \:: Send, +=
;;============================Editor================================||
CapsLock & z:: Send, ^z                 ; Z = Cancel
CapsLock & x:: Send, ^x                 ; X = Cut
CapsLock & c:: Send, ^c                 ; C = Copy
CapsLock & v:: Send, ^v                 ; V = Paste
CapsLock & a:: Send, ^a                 ; A = Select All
CapsLock & y:: Send, ^y                 ; Y = Redo
;;===========================Controller=============================||
CapsLock & s:: Send, ^{Tab}             ; Switch Tag    S = {Ctr + Tab}
CapsLock & w:: Send, ^w                 ; Close Tag     W = {Ctr + W}
CapsLock & q:: Send, !{F4}              ; Close Window  Q = {Alt + F4}
CapsLock::Send, {ESC}                   ; Vimer's love Capslock = {ESC}
;;=========================Application==============================||
CapsLock & d:: Send, !d                 ; Dictionary    D = {Alt + D}
CapsLock & f:: Send, !f                 ; Everything    F = {Alt + F}
CapsLock & g:: Send, !g                 ; Reversed      G = {Alt + G}
CapsLock & e:: Run http://cn.bing.com/  ; Run Explore   E = {Explore}
CapsLock & r:: Run Powershell           ; Run Powersh   R = {Powershell}
CapsLock & t:: Run C:\Program Files (x86)\Notepad++\notepad++.exe; Run Notepad++  T = {Text Editor};;==================================================================;;
;;=========================CapsLock's Stuff=========================;;
;;==================================================================;;

View Code

转载于:https://www.cnblogs.com/Vonng/p/4240219.html

CapsLock魔改大法——变废为宝实现高效编辑相关推荐

  1. YOLOv6 Pro | YOLOv6网络魔改 (1) ——RepGFPN融合高效聚合网络(ELAN)和重参数化的目标检测Neck(来自DAMO-YOLO)

    在阿里达摩院 ICLR2022 发表的论文<GiraffeDet: A Heavy-Neck Paradigm for Object Detection>中,他们提出了GiraffeDet ...

  2. 代码已开源,一起魔改大西瓜!

    上了两次微博热搜的<合成大西瓜>,想必大家都玩过了,好多人刚开始嗤之以鼻,最后真香了,说实话有点上头. 其火热程度直登热搜第三,阅读量6.9亿,朋友圈里也在纷纷安利. 合成大西瓜 游戏界面 ...

  3. 别魔改网络了,Google研究员:模型精度不高,是因为你的Resize方法不够好

    作者丨小马 编辑丨极市平台 本文原创首发于极市平台公众号,转载请获得授权并标明出处. [写在前面] 尽管近年来卷积神经网络很大地促进了计算机视觉的发展,但一个重要方面很少被关注:图像大小对被训练的任务 ...

  4. 用最简单的方式训练史上最强ResNet-50,性能超过魔改结构的ResNeSt

    近日,CMU 的研究人员在 arXiv 上放出了一份技术报告,介绍他们如何通过蒸馏(distillation)训练一个强大的小模型.所提出方法使用相同模型结构和输入图片大小的前提下,在 ImageNe ...

  5. 再谈类别不平衡问题:调节权重与魔改Loss的综合分析

    ©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP.神经网络 类别不平衡问题,也称为长尾分布问题,在之前的文章里已经有好几次相关讨论了,比如从 loss 的硬截断.软化 ...

  6. 一款无惧“魔改”的设计系统开源了,已支持字节跳动4000多个项目

    对设计师和前端开发来说,个性化设计和高效的实现往往难以兼得: 视觉上的个性化设计往往意味着开发要对设计系统的组件库进行各种魔改和封装,对程序员来说,不仅开发成本高,后期维护也比较困难. 现在,一款名为 ...

  7. slam魔改的支持数据库动态虚拟墙,禁行线costmap_prohibition_layer

    slam魔改的支持数据库动态虚拟墙,禁行线costmap_prohibition_layer qt界面编辑虚拟墙 qt界面编辑虚拟墙参考 readme: #### 虚拟墙使用介绍基于costmap_p ...

  8. 工程师“魔改” AirPods Pro 接口,苹果“妥协”将成大势所趋?

    整理 | 朱珂欣 出品 | CSDN程序人生(ID:coder_life) 近年来,  USB-C 接口凭借其高效的数据传输.充电速度等优势,促使时下的许多手机品牌大规模使用,可谓实现了统一" ...

  9. 冰蝎各版本工具分析与魔改思路

    0x00 V2版本 1. 项目 github项目:https://github.com/rebeyond/Behinder/releases/ V2 源码:https://github.com/hkt ...

最新文章

  1. 朴素贝叶斯 python 实现
  2. 进制转换c++代码_跟小黑学漏洞利用开发之16进制字符转换
  3. 软件测试要求太高,软件“故障门”频现 对软件测试提出更高要求
  4. oracle创建多个游标,Oracle——游标的创建和使用
  5. 类与对象初识 类是模具 对象是产品 0314 2101
  6. 【苹果cms10 Maccmsv10 站群深度定制版 开发日志】 数据渲染模块
  7. 基于上下文的访问控制与基于区域策略的防火墙
  8. AccelStepper步进电机库简介操控28BYJ-48步进电机
  9. 华为HCIE之TS部分整理
  10. 小米游戏中心10月报告:分析各种手游活动之优劣
  11. 通过scheme协议启动app
  12. 计算机应用基础评分标准及评分细则,《计算机应用基础》评分标准
  13. 用HTML5+CSS3实现qq会员页面的仿制
  14. 【数据结构】之两栈共享空间(C语言)
  15. 计算机专业考研复试上机算法学习
  16. 全文检索(一) -- Lucene
  17. 从零开始学数据结构和算法:mysql环境变量的配置win10
  18. uniapp 做的一个房贷计算器
  19. note3 android l,inote灵感笔记安卓
  20. 一个程序员眼中的黄昏

热门文章

  1. 【Linux】一步一步学Linux——groups命令(93)
  2. 【内核驱动】 在内核源码中添加第一个驱动程序
  3. 如何在 Eclipse 中使用命令行
  4. 跑三小时的monkey测试该怎么算_百亿次的锤炼 - 带逛Dragonboat的各类测试
  5. 多路测量实时同步工作原理_MCC 134测量热电偶的工作原理
  6. 数据结构-----二叉树,树,森林之间的转换
  7. 剑指offer-求二叉树深度
  8. 解决 Xcode10 编译错误 ld: library not found for -lstdc++6.0.9
  9. javaweb利用struts2完成批量删除记录
  10. 关于将struts2框架下,使自定义过滤器对部分的action(一个action或多个action)请求忽略的方法