把敲代码过程中的琐碎操作交给肌肉记忆

1,532 阅读5分钟

在敲代码的过程中,肯定会有不少琐碎的操作,这些操作或多或少占用着我们大脑的进程,但其实很多操作可以让我们的肌肉记忆去完成它。 比如在各个应用之间来回切换,当打开的应用超过3个以上之后,鼠标或者Tab键可能就忙不过来了,关键切换之前还得先找到对应的应用(换句话说就是在切换应用的时候额外占用了眼睛的进程) 这篇文章分享一下我是怎么把切换应用的操作交给肌肉记忆的,用到了下面几个App(macOS)

Karabiner-Elements

工欲善其事,必先利其器,首先先把我们的键盘整治一下。

Karabiner-Elements是一个MacOS下强大的改键应用。这里我们用它来改一些基本用不到的键。比如键盘中的右command右option右shift 这几个键都是键盘中的摸鱼仔,从电脑的入手到用废弃,基本按不了它几下,按不了几下也就忍了,可它们占据了键盘中非常好的位置,这就有点占着茅坑不拉屎的意思了,所以为啥不改了它呢?

image.png

下面,我以把右commnad改为F19为例,说一下改键流程(F19叫做超级键hyper keycommand+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, 否则就不做任何操作,完美解决了我手贱的毛病

具体用法我就不多做介绍了,有点类似Alfredworkflow, 可以用各种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 练级攻略