macOS 下根据当前应用自动修改快捷键

自从习惯了 iPad 外接键盘的快捷键,越发觉得 Caps Lock 进行中英文切换十分方便。但是作为多年的标准 Vim 党,把 Caps Lock 键映射成 ctrl(or esc) 键又是理所应当的事情。人民日益增长的美好需求和不平等不充分的系统功能发展的矛盾已经成为当今 Vimer 的主要矛盾👀。

##基本设置 先说说在察觉的 Caps Lock 方便的中英文切换之前我是怎么做的。利用系统自带的设置可以很方便地把 Caps Lock 键映射成你想要的其他修饰键 1

###方法

  1. 打开系统偏好设置。
  2. 点击键盘选项。屏幕快照 2017-12-09 上午10.40.55

  3. 在键盘标签页中点击右下角的修饰键。
  4. 将左边的键根据自己的需求重新映射成其他的修饰键吧。图中我把 Caps Lock 键重新映射成 Ctrl 键。 屏幕快照 2017-12-09 上午10.41.04

##新的矛盾 面临新的主要矛盾,最好的方法是去解决它而不是逃避它!经过我多年深入探索尝试,终于!!!!! 就决定是你了!出来吧!皮卡丘! 这位皮卡丘就是我们大名鼎鼎的 Karabiner-Elements。 先奉上深藏功与名的官方网页 图片 1

这网页设计的清晰脱俗,比花花绿绿的 vim 官网直白多了。

Karabiner-Elements

Karabiner-Elements 是大名鼎鼎的键盘自定义软件 Karabiner 后续之作,经过完全重新设计,性能得到大副优化,专门针对 macOS 10.12 和后面的更高峰!!2

由于这个软件笔者也不是太熟悉,所以这里就讲讲专门针对 vim 的基础设置吧,其他的靠官网介绍和各位读者的想象力了。

###简单配置方法 像这种系统辅助类软件基本都没有什么好看的界面的,一般都是在偏好设置填满密密麻麻的配置选项。所以我们先打开软件的偏好设置。 我的方法是添加了一个新的配置文件,这个配置文件专门针对 Vim 快捷键。编辑配置文件在 Profiles 标签页。这软件没有中文,所以你如果英语不好的话建议早点放弃 Vim 吧。孩子,永生的 Vim 不是你能掌握的!! 屏幕快照 2017-12-09 下午4.43.44 就叫 VimMode!这名字听起来既装逼又不失一些细节,读者也可以按照自己的喜好来。 创建好配置文件后选中它,我们就进入了 VimMode 的设置中,然后作为该软件的一枚萌新🐶,我们就去 Simple Modification 标签页看看吧。 屏幕快照 2017-12-09 下午4.43.52

通过一些骚操作,我们把 caps_lock 键映射成 ctrl 键了,就下来,就可以愉快的玩耍了!在平时就用默认配置,vim 下就切换成 VimMode。

##人是贪得无厌的。。。 作为华科大自动化的人,怎么能忍手动切换这两种模式呢?一定要自动化!!!! 经过无数个漫长的春夏秋冬,潮涨潮落,终于在一个月黑风高的夜晚,笔者的苦心感动了上天,于是晚上周公约笔者,说:“骚年,看你骨骼惊奇,不如我送你一部xx宝典吧!”笔者定眼一看,一个大大的 Command 键 Logo 赫然印出现在眼前,不错,就是这个东西!Keyboard Maestro!! kmicon

作为 macOS 上最强大的自动化工具之一,多次让笔者产生了放弃 Alfred 的念头,最终笔者还是忍住了,因为没有时间学这个软件怎么用。

###自动切换 VimMode 切换两种配置文件就是修改 Karabiner-Elements 的配置文件,经专案组调查发现,这个隐秘的窝点在

/Users/`whoami`/.config/karabiner/karabiner.json

只需把文件中 “profiles” 下的 “name” 后的内容修改成相应的文件名即可。 我们可以写个脚本来修改后面的字符串,平常就是 “Default profile”,遇到特殊情况就修改成其他的,比如说 VimMode。 Keyboard Maestro 可以检测你当前用的软件,从而自动触发一些命令,我们可以利用这个特点,让 Keyboard Maestro 根据当前使用的软件自动激活指定脚本,从而修改 Karabiner-Elements 的配置文件。

这里直接拿了 Donie Leigh 的脚本做 demo,在此表示十分感谢!!! 一键切换脚本访问地址

将这个脚本放到你喜欢的地方,比如我就放到了跟作案窝点相同的位置,然后打开 Keyboard Maestro 进行如下的配置: 屏幕快照 2017-12-09 下午5.35.03 嗯,就是这样,多的不需要解释了吧,当 Clion 或 Vim 处于激活状态时触发脚本。如果看不懂请到评论区留言,不过我估计应该不会有多少人看就是了😒😒 不过不要忘记了,有进就又出😏!当退出这两个软件时(或切换到别的软件时)我们要修改回默认配置,这个很简单,只需对着这个稍稍修改下就可以了,不懂请到评论区留言!!

接下来使用就很舒服了,自动切换,美滋滋!

  1. 据我观察,macOS 上修饰键指的是 Caps Lock, Ctrl, Option, Cmd, Esc 这五个键。 

  2. 其实是原来的不兼容新系统,作者又懒得让软件适配这么多版本的系统,干脆重新开发个软件,老软件针对老系统,新软件针对新系统,省事!