成品:

REGEDIT4

 
 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]

"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,36,00,3a,00,00,00,00,00

 
 

<<CapsLockToRShift.reg>>

 
 

 
 

解释,参考文档:

 
 

|

将Caps Lock转换成Esc(windows and linux)

HOMEABOUTPUBLICATIONGUESTBOOKVITAECATEGORIESTAGSLINKSSUBSCRIBE

##1. linux 下将Caps Lock 转换成Esc

作为一个vimer,Caps Lock对我(还有其他很多人)来说根本就是多余的,而且在键盘中的位置根本不合理,一不小心就按到了Caps Lock,然后就出错了。Esc又是vim下使用最为频繁的按键,将Caps Lock替换成Esc真是再好不过了,而且不用担心按ESC的时候按到了该死的F1。

可能有人会问,这样对于连续的大写不是就不方便了吗?我们可以先用小写,然后选中该段文中,按U,就变成大写了。对于在vim中的大写,这里还有一个小技巧推荐给大家:

inoremap <C-u> <esc>gUiwea

将上面这条语句是放在.vimrc文件里的,它的作用就是在编辑状态下,按ctrl+u,将你刚刚输入的那个单词变成大写。谁用谁知道。对一个用vim 作为主要编辑器的人,有了上面两条技巧以后, Caps Lock 就是多余的了。

在linux将Caps Lock转换成Esc非常简单,只要在.profile文件加入下面这条语句即可。

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

当你不需要的时候,只要将这条语句删除,重启即可。

##2. windows下将Caps Lock 转换成Esc

在linux下把Caps Lock当Esc习惯以后,到windows下自然也希望将Caps Lock转换成Esc,如果用搜索引擎搜"windows Esc Caps lock",很轻松的就找到了下面的答案:

  • 新建文本文档,重命名为capslock2esc.reg
  • 输入如下内容
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
    "Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,3a,00,01,00,01,00,3a,00,00,00,00,00
  • 然后保存,并且双击写入注册表,重新登录计算机

    这个答案有个问题就是交换了Caps Lock与Esc ,当我向我们组的同事请教问题的时候,他需要在我的电脑上操作,按Esc确是Caps Lock 显然让他很不习惯,所以,我又搜了一下,如何将Caps Lock转换成Esc ,而不是交换它们。我找到了这篇文章,讲得不错,可惜有错误。

    为了完整,把这篇文章转过来了,并修正了错误。方法还是和上面的一样,不过多了解析。

    下面分析"Scancode Map"后面一长串数字, 为方便分析,拆分为每8位一行,并加上行号,结果如下:

    1. 00,00,00,00,
    2. 00,00,00,00,
    3. 03,00,00,00,
    4. 3a,00,01,00,
    5. 01,00,3a,00,
    6. 00,00,00,00

    头两行和最后一行,是固定的,都是8个0。

    第3行,表示共更改了多少个按键,本例为3个,怎么算的?从第4行开始,到最末尾行(虽然严格来说末行不算),每行算1个,4、5、6行,刚好3个

    第4行,前后各4位,分别代表某个按键。本例为将0100的按键映射为3a00。3a00代表CapsLock键,0100代表Esc键

    第5行,同理,3a00的按键映射为0100,即映CapsLock射为Esc

    第6行,已经讲了,末行,固定8个0。如果需要增加更多的映射,可以在此行之上,不断加类似4、5行格式的。当然,最后的结果,还是要将各行合为一行的。

    每行的4个数字,两个数字一组,代表一个按键,在映射时,他们的关系类似与c语言的char *strcpy(char *strDest, const char *strSource)函数,把后面一组的意义赋给前一组。

    综上所述,将Caps Lock映射成Esc,而不是交换Esc与Caps Lock的代码如下:

            [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
            "Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,3a,00,00,00,00,00

    叫上面代码保存到capslock2esc.reg 文件中,双击运行,重启电脑即可。

    还原按键时,只需要在注册表的路径([HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout])下,删除Scancode Map键即可。

    ###附录

    部分按键映射对照表。

    Escape 01 00
    Tab                                 0F 00
    Caps Lock 3A 00
    Left Alt 38 00
    Left Ctrl         1D 00
    Left Shift 2A 00
    Left Windows 5B E0
    Right Alt 38 E0
    Right Ctrl 1D E0
    Right Shift 36 00
    Right Windows 5C E0
    Backspace 0E 00
    Delete 53 E0
    Enter 1C 00
    Space 39 00
    Insert 52 E0
    HOME 47 E0
    End 4F E0
    Num
    Lock 45 00
    Page
    Down 51 E0
    Page
    Up 49 E0
    Scroll Lock 46 00

    还有一个特殊的值 —— 00 00,表示啥也不干,如果要将某个按键禁用,只需映射为00 00。

    赖明星 / 2013-05-20 

    Published under (CC) BY-NC-SA in categories 工具  tagged with vim  esc 

    Scroll to top

     
     

    来自 <http://mingxinglai.com/cn/2013/05/change-capslock-to-esc/>

Win 通过修改注册表把CapsLock映射为Rshift的更多相关文章

  1. 通过修改注册表将右alt键映射为application键

    通过修改注册表将右alt键映射为application键的方法有许多键盘没有APPLICATION(上下文菜单)键,本文将教您如何把右ALT键映射为apps键.1.映射请将以下注册表信息用记事本保存为 ...

  2. C#综合揭秘——通过修改注册表建立Windows自定义协议

    引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对 ...

  3. 【转】C#综合揭秘——通过修改注册表建立Windows自定义协议

    引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对 ...

  4. Win10 远程桌面连接出现“要求的函数不受支持”的解决办法之修改注册表

    问题起因 笔者自己在阿里云上搞服务器,有一台 Windows Server 必须通过远程桌面连接来管理,由于没能完全关掉 Win10 自带的烦人的系统更新,导致昨天安装完更新后出现了连接远程桌面时“要 ...

  5. 通过修改注册表建立Windows自定义协议

    引言 本文主要介绍注册表的概念与其相关根项的功能,以及浏览器如何通过连接调用自定义协议并与客户端进行数据通信.文中讲及如何通过C#程序.手动修改.安装项目等不同方式对注册表进行修改.其中通过安装项目对 ...

  6. 修改注册表修改环境变量PATH

      因公司办公电脑做了权限设置,不能通过右击“我的电脑”-属性的方式更改环境变量值 摸索找到了通过修改注册表的方式修改PATH值 Win+R 输入regedit打开册表编辑器 HKEY_LOCAL_M ...

  7. 修改注册表 去除Windows快捷方式图标小箭头

    一些朋友不喜欢Windows系统中快捷方式图标上面的小箭头,下面介绍如何修改注册表去除快捷方式图标上的小箭头. 1.开始->运行->输入regedit,启动注册表编辑器,然后; 2.依次展 ...

  8. windows文件关联、打开方式列表之修改注册表攻略

    这里全是修改注册表的方式.网上找了半天,有的仅有添加文件关联的方法,却没有添加到打开方式列表里面的方法:有的有添加到文件列表的方法,却是使 用控制面板->文件夹选项的.好难得才找齐所有,从添加文 ...

  9. 通过cmd修改注册表并设置cmd窗口的大小

    设置cmd的窗口 mode: modem设置系统设备,主要是lpt1, com1/2, con: 启动时设置窗口大小: cmd /k "mode con: cols=120 lines=40 ...

随机推荐

  1. 修改git remote url

    $ ssh -v wangz@gitlab.alibaxx-inc.com $ git remote ali set-url git@gitlab.alibaxx-inc.com:youk-aaa/x ...

  2. 数独 JAVA实现

    数独游戏的规则从很久之前就知道,但是一直都没怎么玩过,然后到了大学,大一下学期自己学dfs的时候,刚刚好碰到了一个数独的题目,做出来后,感觉还是挺有成就感的 然后大二学了JAVA,看了下那个一些有关于 ...

  3. java 对象序列化与反序列化

    Java序列化与反序列化是什么? 为什么需要序列化与反序列化? 如何实现Java序列化与反序列化? 本文围绕这些问题进行了探讨. 1.Java序列化与反序列化  Java序列化是指把Java对象转换为 ...

  4. C# 连接DB2字符串 Oracle免安装客户端连接字符串

    以下是DB2连接数据库 1)使用IBM.Data.DB2链接DB2数据库 2)必须安装DB2客户端,IBM.Data.DB2在安装的BIN里可以找到 3)注意一下DB2客户端版本问题,我的就是WIN7 ...

  5. 关于目录路径path

    1.框架的目录结构 yii-1 .htaccess index.php protect -config -controllers -components 2.Linux 服务器 CentOs usr/ ...

  6. [iOS] 为文本加上横线方法

    _oldPriceLabel.text = "; _oldPriceLabel.textColor = [UIColor lightGrayColor]; NSMutableAttribut ...

  7. ajax用get刷新页面元素在IE下无效解决~~

    总结一下解决办法: 在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱,[即get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端 ...

  8. 12/13 Oracle连接报错

    1.oracle连接错误the network adapter could not establish the connection参考:http://blog.sina.com.cn/s/blog_ ...

  9. MYSQL数据库相关知识合集

    1  MYSQL取得某一范围随机数: 关键词:RAND() [产生0~1之间的随机数] mysql> SELECT RAND( ), RAND( ), RAND( ); +----------- ...

  10. locate 最快的查找文件的命令 NB

    我见过最NB的查找文件最快的命令 [root@NB data]# locate teamviewer. /data/Software/teamviewer.i686.rpm /home/ok/.loc ...