为什么要费尽心思的用键盘替代鼠标操作。
在使用电脑的过程中,最优先的操作方式应该是键盘,而次等的方式才是鼠标,因为鼠标需要使用者在键盘和鼠标之间来回切换,因此影响效率。而 “纯键盘操作” 需要使用者记忆大量的键位和操作模式,所以纯键盘从来都是高阶操作。
鼠标长久以来都是顺应人的本能去设计的。但高阶操作是什么?高阶操作就是训练人克服本能,用更有效、更科学的但非本能的方式去应对,所以才需要大量的练习,大量的实战,从而形成肌肉记忆和思维定势去对抗本能。vim 如此,Hammerspoon 也如此。
有些了解过 Hammerspoon 可能把它看作一款窗口管理工具,用此来替代 Magent 等付费工具,但 Hammerspoon 的玩法绝不仅于此,本文将介绍 Hammerspoon 及我的配置。
Hammerspoon 介绍
Hammerspoon 是一款免费开源的 app,通过桥接操作系统与 Lua 脚本引擎的方式,让我们可以通过编写 Lua 代码来实现操作应用程序、窗口、鼠标、文本、音频设备、电池、屏幕、剪切板、定位、wifi 等。基本囊括了系统的各方面。
安装
-
通过 Homebrew 安装: (如果不了解
Homebrew看这里。)brew cask install hammerspoon -
手动下载安装: https://github.com/Hammerspoon/hammerspoon/releases/tag/0.9.75 然后将应用程序拖到
/Applications/。

第一次打开需要授予辅助功能权限,点击 Enable Accessibility即可。此时在 ~/.hammerspoon/init.lua 写入自己的配置文件在 Hammerspoon 单栏图标并选择 Reload Config 重载配置即可生效。
配置与升级:
将配置文件克隆到本地根目录。
git clone https://github.com/zuorn/hammerspoon_config ~/.hammerspoon
重新加载配置文件即可生效。
如果提示:already exists and is not an empty directory. 先删除目录
rm -rf ~/.hammerspoon
升级:
cd ~/.hammerspoon && git pull
功能实现
本配置基于 vim 风格,实现了窗口管理,剪切板,倒计时,快速启动等功能。所有模式按照指定快捷键进入,所有模式都可以用
esc或q退出。在进入对应模式之前只有模式快捷键生效,进入对应模式之后此模式的操作快捷键生效。
可以按下快捷键 shift + option + / 显示帮助面板查看各个模式快捷键。再按照提示切换模式。

窗口管理
按下前缀键 Option + R 进入窗口管理模式:
- 使用
h、j、k、l移动为上下左右的半屏 - 使用
y、u、i、o(即 hjkl 上方按键)移动为左上 /左下 /右上 /右下的四分之一窗口 - 使用
c居中,按下=、-进行窗口大小缩放 - 使用
w、s、a、d向上下左右移动窗口 - 使用
H、J、K、L向左 /下增减窗口大小 - 使用方向键
上、下、左、右移动到相应方向上的显示器(多块显示器的话) - 使用
[,]左三分之二屏和右三分之二屏 - 使用
空格将窗口投送到另外一块屏幕(假如有两块以上显示器的话) - 使用
t光标移动到所在窗口的中间位置 - 使用
tab显示帮助面板,查看键位图 - 使用 q 或 Esc 退出管理

应用快速切换
按下前缀键 Option + tab 显示窗口提示,按下对应应用显示的字母快速切换。

展示应用快捷键
按下快捷键 Option + s 展示当前应用快捷键。

快速启动
按下快捷键 Option + a 打开快速启动,按下对应字母快速打开应用。

AClock - 显示当前时间
按下 Option + t 显示当前时间。

倒计时(番茄钟)
按下 Option + i 打开倒计时面板,按下对应数字开始计时。

系统剪切板
按下 Option + c 打开剪切板面板。

功能:
- 保存会话
- 恢复上一个会话
- 在浏览器中打开
- 使用百度搜索
- 使用谷歌搜索
- 保存到桌面
- 使用 github 搜索
- 在 Sublime Text 打开
顶部菜单栏实时显示网速
没有对应快捷键,默认开启。

其他快捷键
- 粘贴 chrome 或 safari 打开最前置的网址:
option+v - 显示 Hammerspoon 控制台:
option+v - 锁定电脑快捷键:
option+l - 重新加载配置文件:
cmd+shift+ctrl+r - 临时禁用所有快捷键(注意:只能手动接禁。):
cmd+shift+ctrl+q
自定义配置
拷贝私有配置文件
cp ~/.hammerspoon/config-example.lua ~/.hammerspoon/private/config.lua
按照注释编辑私有配置文件 ~/.hammerspoon/private/config.lua 即可。
其他功能(后续实现)
- 按下前缀键滚动鼠标滚轮调节系统音量
- 添加鼠标模式,进入鼠标模式后按下对应按键实现鼠标所有按键。
- 切换 wifi 提醒
- 显示已安装卷的列表以及桌面上每个指示可用空间的饼图
- 连接 /断开耳机时播放 /暂停音乐播放器
- 添加音乐控制模式,进入后通过按键控制 网易云音乐 和 iTunes
可自定义范围:
-
指定要启用模块
找到配置文件启用模块,注释对应模块可禁止用对应功能。
-
绑定快速启动 app 及快捷键
-
自定义模式快捷键
-
自定义 hammerspoon 快捷键绑定
自己写配置
Lua 是一种非常简单的语言,没有编程经验也很容易上手。hammerspoon 官方也提供了一份教程,或者看看菜鸟教程。
官方还有很多现成的 Spoons 勺子? 可以用,有些直接拿来绑定一下键位就可以直接用了,如果觉得官方勺子不符合自己的需求,你也可以把它改成自己想要的样子。多看看官方文档和相关的文章,以及官方勺子的源码,就很容易定制一个属于自己独一无二的神器。