在敲代码的过程中,肯定会有不少琐碎的操作,这些操作或多或少占用着我们大脑的进程,但其实很多操作可以让我们的肌肉记忆去完成它。
比如在各个应用之间来回切换,当打开的应用超过3个以上之后,鼠标或者Tab键可能就忙不过来了,关键切换之前还得先找到对应的应用(换句话说就是在切换应用的时候额外占用了眼睛的进程)
这篇文章分享一下我是怎么把切换应用的操作交给肌肉记忆的,用到了下面几个App(macOS)
- Karabiner-Elements (以下可能用KE代之)
- Keyboard Maestro (以下可能用KM代之)
- Thor
Karabiner-Elements
工欲善其事,必先利其器,首先先把我们的键盘整治一下。
Karabiner-Elements
是一个MacOS下强大的改键应用。这里我们用它来改一些基本用不到的键。比如键盘中的右command
,右option
,右shift
这几个键都是键盘中的摸鱼仔,从电脑的入手到用废弃,基本按不了它几下,按不了几下也就忍了,可它们占据了键盘中非常好的位置,这就有点占着茅坑不拉屎的意思了,所以为啥不改了它呢?
下面,我以把右commnad
改为F19
为例,说一下改键流程(F19
叫做超级键hyper key
是command+shift+option+control
键的组合)。
首先安装一下app,可以通过官网,或者homebrew
brew install karabiner-elements
复制代码
安装完毕后打开这个网站。
可以看到这里列出了很多的改键预设,你可以找一个你喜欢的,或者差不多的点击import,这里选择Change caps_lock key(rev4)
。如果你已经安装好了KE,点击后会自动提示是否打开KE,点击打开。
打开后,点击import.
接着会进入这个界面,随便选一个enable就成,反正最终都是要改的。
操作完之后,复杂改键(complex modifications)Tab栏下的Rules就会多一条。
这里默认把
caps_lock
改了,其实也挺好的。caps_lock
比较容易够到, 而且用的小拇指去按,所以非常适合配合其他键来实现组合键。但是毕竟本身用来切换大小写,不太好单独当作一个自定义功能键使用(KE中可以配置改键在单独按下还是和其它键组合的时候生效)。
接下来讲一下怎么把这个键改成右command
。
打开下面这个文件。
~/.config/karabiner/karabiner.json
复制代码
这个文件是KE的配置文件,其实上面的一系列操作的结果最终会写入这个配置文件中。注意到很长的那个description了吗,就是我们刚才操作的结果。你可以按照上面的步骤多引入几个看一看,看完然后差不多就明白配置文件的语法了。这里按照我们的要求,只要把caps_lock
改为right_command
即可。
{
"global": {
"check_for_updates_on_startup": true,
"show_in_menu_bar": true,
"show_profile_name_in_menu_bar": false
},
"profiles": [
{
"complex_modifications": {
"parameters": {
"basic.simultaneous_threshold_milliseconds": 50,
"basic.to_delayed_action_delay_milliseconds": 500,
"basic.to_if_alone_timeout_milliseconds": 1000,
"basic.to_if_held_down_threshold_milliseconds": 500
},
"rules": [
{
"description": "Change caps_lock key to command+control+option+shift. (Post f19 key when pressed alone)",
"manipulators": [
{
"from": {
"key_code": "caps_lock", // 改为right_command
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_shift",
"modifiers": [
"left_command",
"left_control",
"left_option"
]
}
],
"to_if_alone": [
{
"key_code": "f19"
}
],
"type": "basic"
}
]
}
]
},
"devices": [],
"name": "Default profile",
"selected": true,
"simple_modifications": [],
"virtual_hid_keyboard": {
"country_code": 0
}
}
]
}
复制代码
改完右command
,接下来就可以依样画葫芦,改右option
,右shift
,甚至左option
到这里改键就完成了。之后就是给你改好的键分配命令了,这就看你的需求了,比如我把右command
给了Alfred
, 右option
给了iTerm2
。绑定完之后就可以愉快一键激活App窗口了。
这里有个问题,不是所有app都如Alfred
一样,提供了设置快捷键激活窗口的功能。
这就需要用到下面的app协助了
Thor
这个使用起来很简单。选择app,然后绑定按键,绑定后的app就能通过快捷键启动、快捷键激活窗口。
改的过程中你可能又会遇到一个问题,提供快捷键激活功能的App或者Thor
,都不能直接绑定option
这类的修饰类按键(必须要和其他非修饰类键组合)。解决方法就是Thor
+ KE
配合,也就是本文的例子右command
的改法(one-to-many)
。
这个app非常轻量好用,不过有个问题,我的手比较贱。没事就喜欢乱敲快捷键,所以老是误打开不想要的软件。
因为这个原因我换成了下面这个
Keyboard Maestro
Keyboard Maestr 是macOS的一个自动化软件,他的功能非常多,本文只用它来绑定App快捷键
可以看到这里右侧的action
中,快捷键激活App可以写条件分枝。我这里写的是,如果当前app在运行,就激活app, 否则就不做任何操作,完美解决了我手贱的毛病
具体用法我就不多做介绍了,有点类似Alfred
的workflow
, 可以用各种action
,支持好多种语言的script
。这里我就抛砖引玉提供一下我自己目前在用的快捷键绑定Marcos
,直接导入即可。
链接:pan.baidu.com/s/1yNW8tP-E… 密码:761o
还有社区提供的一些资源,找找你想要的,相信看完几个Marco
,就能依样画葫芦了。
wiki.keyboardmaestro.com/Macro_Libra….
forum.keyboardmaestro.com/t/best-macr…
最后一个问题
最后一个问题,就是记忆快捷键,我和朋友安利这个的时候都嫌要记忆快捷键麻烦。。。。
我基本上为我常用的app都加上了快捷键,大概十来个左右,都是工作过程中因为某些操作不顺手而慢慢加上的,所以并没有什么记快捷键的成本。一旦改键+绑定工作完成,并且配置的快捷键也形成肌肉记忆,敲代码的时候,就可以随心所欲地在各个App之间来回切换了。换句话说你大脑的一个指令,通过快捷键辅助可以直接下达到手指,不用再麻烦大脑其他部位了。
其实和记忆vim
的命令一样,这种东西不是一下子全部记住之后再去使用的,而是在工作中慢慢地用,自然而然掌握的,过程中可能需要小小地迈出自己的舒适圈。
分享一下耗子叔的 简明 VIM 练级攻略