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

前言

CapsLock是什么,就是键盘左边中间那个大写锁定。一直以来的都是一个神奇的存在,不仅很少会用到,更多的时候还是一个非常碍事讨厌的存在。万能神奇小软件AutoHotKey,程序员的好帮手,小拇指的大救星。提供了一个简单可靠的解决方案来帮助广大的程序员变废为宝。它不像Dvorak键盘映射,在你有装逼需求的时候频繁添乱;也不像HHKB,不方便带还额外要笔银子。只需要一个随身携带的小脚本,甚至是直接编译成百来K的可执行文件。就可以把这个方便的小工具带着跑。有了它,妈妈再也不用担心我的打字。

功能概述:

提供类似Vim的光标操作,提供便捷的导航按键与删除控制。提供Windows风格的最常用编辑按键组合。提供常用程序快捷方式,提供简易窗口标签控制,最最重要的,把ESC改到Capslock上了,简直广大VIM党的福音。

设计思想:

  1. 导航键:

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

  1. 删除键

这个没什么好说的CapsLock+{BNM,./}构成了六个删除键。尤其是N和 . 对应的删除单词功能,基本等价于Vim中的db和dw。在日常编辑中极为方便。

  1. 特殊字符

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

  1. 上档

这个毋需解释,以后按Shift的时候浪一点也无所谓了,键盘第二排的按键,CapsLock与上档键功能一致。

  1. 编辑控制

Windows已经用了十几年,复制粘贴剪切撤销这些快捷键已经成为 条件反射了怎么办?啊哈哈哈,ZXCVAY这几个使用频率最最高的Window编辑快捷键与Capslock合作的相当愉快,使用CapsLock+X与Ctr+X效果是一致的,但是左手小拇指就不用往下移动了,这一点与HHKB是一致的。

  1. 窗口控制

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

  1. 特殊程序

最后剩下的几个按键,属于自己的常用定制键位了,可以按照自己的爱好修改。我的仅供参考:

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  after

CapsLock & 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=========================;;
;;==================================================================;;

时间: 2024-10-11 04:09:49

CapsLock魔改大法——变废为宝实现高效编辑的相关文章

魔改——MFC SDI转MDI

==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性. 未经作者同意请勿修改(包括本声明),保留法律追究的权利. 未经作者同意请勿用于出版.印刷或学术引用. 本文不定期修正完善,为保证内容正确,建议移步原文处阅读. 本文链接:http://www.cnblogs.com/wlsandwho/p/4286906.html =============

vim学习记录(二)高效编辑(命令行)

直接正文,第二部分高效编辑. 一.命令行编辑 1.命令行输入 : 输入后自动跳转到命令行,接受命令输入 ? 输入后自动跳转到命令行 / 输入后自动跳转到命令行 2.命令行移动光标 left 向左移动一个字符 right 向右移动一个字符 s+left or c+left 向左移动一个单词 s+right or c+right 向右移动一个单词 c+b or home 移动到开头(begin) c+e or end 移动到结尾(end) 3.命令行删除 backspace 删除光标前一个字符 c+

魔改——MDI多视图模板Tab/标签页 初始化/操作控件

==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性. 未经作者同意请勿修改(包括本声明),保留法律追究的权利. 未经作者同意请勿用于出版.印刷或学术引用. 本文不定期修正完善,为保证内容正确,建议移步原文处阅读. 本文链接:http://www.cnblogs.com/wlsandwho/p/4288818.html =============

你没有见过的【高恪】船新版本(SX3000 NAT1 X86魔改)

最近魔改了高恪SX3000 X86,做了如下更改: 开启了SSH 集成了插件(酸酸乳.V2RXY.SMB等等) 开启了NAT1 DIY了主题 精简了官方内置的无用应用和模块 截图(建议右击图片,在新标签页中打开图片) 原文地址:https://www.cnblogs.com/radmin/p/12144372.html

Asp.Net Core Identity 骚断腿的究极魔改实体类

前言 默认的 Identity 实体类型在大多数时候已经基本够用,很多时候也只是稍微在 IdentityUser 类中增加一些自定义数据字段,比如头像.这次,我要向园友隆重介绍我魔改之后的 Identity 实体类,能支持一些特别风骚的操作.当然也完全兼容内置的 UserManager.RoleManager 和 SignInManager,毕竟也是从内置类型继承扩展出来的. 正文 魔改的实体类基于一组我自定义实体接口,这组接口我也实现了一组打包好的基础类型.因为 Identity 系列实体类型

宝塔面板SSpanel-v3-mod安装教程 搭建sspanel v3魔改前端

教程演示环境及工具准备: vultr家的主机  [新用户注册可获取50美金]   CentOS 7X64   [每月5美元,无限流量] ssh工具:xshell点击下载 连接VPS,开始安装宝塔面板 centos yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh 输入Y键,并回车.进行安装 宝塔正在安装中,稍等几分钟.

定期批量改密,实现高效运维,保障口令安全

随着企业IT资产规模的不断增大,各类主机.应用系统的管理也变得愈加困难. 对于系统管理员来说,保证操作系统的密码安全是其重要工作,在需要维护众多的主机时,其面临的困境将是: 1.难以保证所有操作系统无弱口令,且口令密码没有泄露: 2.难以做到定期批量修改主机操作系统密码: 3.难以对批量主机应用密码策略. 那么有没有什么办法让系统管理员省时省力,高效的管理服务器密码和批量修改服务器密码呢?行云管家提供的批量定期改密的功能,很好的解决了这一问题,让用户轻松实现服务器密码的托管.行云管家批量修改服务

魔改——MFC SDI 支持 内嵌 EXCEL OLE

==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的权利 本文原创,已获得转载授权的,必须在正文中显要地注明作者和出处,并保证文章(包括本声明)的完整性. 被授权人不可再次授权第三方. 未经作者授权请勿修改(包括本声明),保留法律追究的权利. 未经作者授权请勿用于学术性引用. 未经作者授权请勿用于商业出版.商业印刷.商业引用以及其他商业用途.    

一次快速改寫 SQL Server 高效查詢的範例

最近線上系統突然出現匯出資料超過 10 筆時,查詢逾時的狀況,在仔細查找之後. 發現了問題原因,透過應用端與數據端兩邊同時調整,將查詢的效率提昇了約數百倍以上 首先,原本應用端的商務邏輯為每一分頁筆數固定為10筆,所以使用者最多可以匯出 10 筆資料 而且原本的商務邏輯是寫成這樣的 這段語法在 SQL Server 執行時,會轉換成以下的範例語法 (這裡 A 表 與 B表 為 1:N 關聯 ) SELECT LawNo,LCNo FROM A INNER JOIN B WHERE 1=1 AND