赞
踩
背景
因本人目前日常主要使用MAC电脑,以及主业为编程,下面主要以MAC电脑以及编程软件为例。
MAC功能键:
⌘: command键,对应Windows中Ctrl键
⌥: option键,对应Windows中Alt键
⌃: control键
⇧: shift键
作为一名合格的极客、程序员、产品经理、设计师、文案工作者,难免会用到七七八八的一些有趣且高效的软件。比如敲代码用的VSCode、IDEA、Sublime、AndroidStudio、XCode,上古时期的Vim、Emacs,配以超级终端iTerm2,熬夜看剧、享受美好生活的Chrome、Safari,设计神器Sketch、PS、AI,产品达人Axure、Visio,文案Office、Typora...
工欲善其事,必先利其器。要深入使用这些软件,一种比较好的方式是尝试他的各种快捷键,快捷键背后实质对应的是一个个小的功能点,比如:⌘+C复制(Windows中为Ctrl+C),⌘+V粘贴。
先感受一下:
此时好不容易兴致冲冲记了几个VSCode的快捷键,用起来好爽好爽,突然因为某个原因需要用IDEA写点JAVA,发现IDEA和VSCode很多快捷键都不一样,于是又花了些功夫记IDEA的快捷键,过两天再回到VSCode,发现两个软件的快捷键已经混淆不清了。
再举个简单的例子,Finder里⌘+N是'新建窗口'(不是标签栏),但是Notes(备忘录)里⌘+N又是新建备忘录;Finder里切换至右标签页是⌃+Tab,Sublime里是⌘+⇧+];IDEA中神仙快捷键(搜索命令)是⌘+⇧+A,VSCode中是⌘+⇧+P;IDEA中搜文件⌘+⇧+O,VSCode是⌘+P。这些例子不胜枚举。
另一个问题是有些快捷键设计的不够便捷以及记忆,比如IDEA中调试相关快捷键:
下面是VSCode的:
不光不一样,还大量用到FN,IDEA中查看断点甚至是⌘+⇧+F8, MAC上得按4个键:⌘+⇧+fn+F8,何况Touchbar几乎断送了FN系列。
另一个高级点的问题是,某个软件的某个功能默认并没有设置快捷键,甚至并没有实现这个功能。比如知名的Finder,竟然不能新建文件。再比如MAC那搞人的最大化,假如支持一键切换最大化、正常尺寸,感受一下!
综上,要想顺畅使用快捷键,理想的方案是让同一个功能在不同软件上使用同一套快捷键,并且能方便查找。
解决方案
一、修改快捷键
一般快捷键比较多的软件都支持直接改快捷键,比如
- VSCode: 首选项→键盘快捷方式
- IDEA: 首选项→快捷键
- Sublime: Preferences→KeyBindings
另外MAC支持一种神奇的设置快捷键的方式,可以给任意菜单添加快捷键:
系统偏好设置→键盘→快捷键→App快捷键
比如给Chrome添加⌘+9,用于打开"扩展程序"页面:
二、Karabiner-Elements(按键映射)
依然有一部分快捷键不那么容易修改,比如Chrome竟然不支持自定义快捷键,而且不在菜单中的功能也没法通过系统去改。另一个问题是MAC设置菜单快捷键这种方式操作不够简洁,也不方便管理。
那么开源神器来了,Karabiner-Elements可以映射快捷键,比如在软件不支持直接修改快捷键时,可以用他来做映射,比如把刚才IDEA查看断点的⌘+⇧+F8映射到⌃+B。另外还支持用快捷键调用bash命令,搭配AppleScript、python、nodejs做自动化几乎可以对MAC为所欲为。
Karabiner-Elements示例ke-complex-modifications.pqrs.org不过这玩意并不太好上手,配置稍稍有点繁琐,我写了个node脚本可以一行添加快捷键映射、快捷键调bash,后续附上。
三、ZUDK(Unified Keymap),设计、快查快捷键
快捷键多了后,修改快捷键时极易撞车,而且查找也不太方便。
于是,撸了这个小工具,目前设计了203个快捷键:
sands321/ZUDKgithub.com设计快捷键时一目了然,下面是我设计快捷键时的一些经验和思路:
- 1.⌘+A
- 2.⌥+A
- 3.⌃+A
- 4.⌘+⇧+A
- 5.⌘+⌥+A
- 6.⌘+⌃+A
- 7.⌃+⇧+A
- 8.⌥+⇧+A
此处暂不考虑3个及以上功能键,鉴于MAC上FN键太难用,暂时也不考虑。
非功能键有48个,26字母+10数字+12符号。
总快捷键数:8x48=384个
2. 系统级高频组合:⌘,⌘+⇧,⌘+⌥
其他软件较高频组合(除上述):⌃,⌃+⇧
较低频组合:⌥,⌘+⌃,⌥+⌃
3. ⌥模式在有些场合下不太好使,比如IDEA设计⌥+2为改文件名,能成功弹出重命名对话框,但是会多出一个™。这是因为⌥本身类似⇧,⌥+字母数字会打出一些Unicode字符,比如: ⌥+G(©),⌥+R(®)。编辑类软件容易出现这种情况,Chrome这类浏览软件稍微好点。
4. 按区域设计,会方便记忆很多。比如调试相关功能我设计到⌃模式里,核心调试功能安排在左侧,保证单手即可方便操作:
感受一下以下流程:
- ⌃+X: 设个断点
- ⌃+D: 启动调试
- - 击中断点
- ⌃+W: 单步
- ⌃+E: 跳入方法
- ⌃+R: 跳出方法
- ⌃+C: 运行至光标并中断
- ⌃+F: 恢复正常运行
- ⌃+S: 停止
是不是会比各种FN顺畅很多,而且我几乎所有开发软件基本都是这套,VSCode、IDEA、XCode,甚至是Chrome。
另外,这套设计语义也正好:X(打个X, 有没有断点的感觉),D(Debug),W(Walk,单步),E(Enter,进入),R(在E右侧,当然是出来),C(Cursor,至光标),F(Forward,前进吧),S(Stop)。
5. 语义关联不一定非要对应到某个单词,比如'恢复运行'一般译为'Resume',但是⌃+R已经被占用了,此时⌃+F的F(Forward)也能很好关联上去,另外⌃+D是调试,左侧⌃+S停止,右侧⌃+F前进,是不是很有那个感觉。同理,⌃+W单步,右侧⌃+E跳入,再右侧⌃+R跳出,是不是也很有那味儿,即使⌃+R并不太好用语义关联。
6. ⌘+⌃很少被用到,是绝佳的开垦之地,这块我征用为全局快捷键了。
⌘+⌃+W调出微信,是MAC版微信在设置里仅有的四个快捷键之一,不过还是很高明,⌘+⌃+W调出后,⌘+W(关闭窗口)顺手关掉。
⌘+⌃+1(打开sublime),⌘+⌃+2(打开词霸),⌘+⌃+3(打开chrome),3个最常用的软件单手即可调出。这3个一开始是设计在右侧,结果发现两只手还是不如一只手来的直觉。
⌘+⌃+P(睡眠),⌘+⌃+L(锁屏),不要太方便。
⌘+⌃+0(调整窗口到最佳尺寸),⌘+⌃+=(最大化窗口,不是系统自带的那种新建桌面),一举告别手动调整窗口尺寸的日子。
7. 另外再介绍几个高频且优秀的例子
- 1.⌘+space: 调出Spotlight搜索,MAC自带
- 2.⌥+space: 调出iTerm2,极客党高频应用
- 3.⌘+tab: 切换APP,默认的不多说
- 4.⌥+tab: APP内切换子窗口,默认的⌃+`太过反人性。而且⌥+tab正好对应⌘+tab,顺手
- 5.⌘+⌥+c: 拷贝文件路径,Finder默认支持,我让VSCode、IDEA、Sublime也全支持了
8. MAC内用'⌃+左键'模拟鼠标右键,且不可更改,Karabiner-Elements都不好使。而且'⌃+左键'再搭配其他功能键(⌘、⌥、⇧),全都是模拟右键,这块浪费了一些有意思的设计空间。
比如IDEA内,我设计了这么一套:
- 光标挪到对象变量上,如: cls1.f1()
- ⌘+左键: 跳转至定义,如:Cls1 cls1=new Cls1();
- ⌘+右键: 弹出快速定义窗口
- ⌥+左键: 跳转至类定义,如:class Cls1{...}
- ⌥+右键: 弹出快速类定义窗口
- ⌘+⌥+左键: 弹出文档窗口
快速定义窗口:
类定义窗口:
快速文档窗口:
9. 不同类别功能的快捷键可能重叠,大体可分:编辑类(各种文本操作术)、设计类(各种图形操作术)、音视频类(含乐器类)、浏览类。VSCode等支持快捷键带上附加条件,比如编辑代码、编辑markdown支持用同一快捷键表示不同功能。 不过IDEA还不支持。
10. Vim、Emacs这类上古神器以快捷键、命令为核心操作模式,抛弃鼠标、触控板、方向键(上古时期还没有这些东西)。快捷键发挥到变态的极致,支持多组序列键表达一个功能,如Vim里'⌃w→q'退出窗口,先按⌃+W,再按q,还有3组甚至更多的。 VSCode、IDEA都借鉴了这种设计,但只支持两组。我单独设计了一版ZUDK_EX,支持序列键,后续会放出。
总结
快捷键不是目的,只是Get Things Down更高效的一种手段,使用同一套快捷键,在设计合理的情况下也不需要刻意去背,每天使用同一套东西只会越用越熟。个人的一点点心得,希望对大家有一些帮助!
欢迎大家关注,勾兑:
ZUDK(github)github.comCopyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。