Alfred 是一款所谓的“生产力工具”,可以理解为就是帮助 Mac 用户提高日常事务的处理效率的工具,在我还没有入手 MBP 的时候就已经(在知乎上)听闻了这款软件的大名了。实际使用了之后发现确实可以提升一些事情的处理效率,是一款值得身为程序员的读者朋友使用的应用。接下来我会举一些例子来说明一下,希望可以传达到我的感受。献上我的 Alfred 使用统计
Alfred 的 Clipboard
剪贴板真是一个再常用不过的功能了,我想所有的读者朋友应该都使用过复制 & 粘贴的功能——不管是在 Windows 上面的 Ctrl-c Ctrl- v 也好,还是在 Mac 上面的 Command-c Command- v 也罢。Alfred 的 Clipboard 功能可以认为是一个强化版的剪贴板,它可以通过快捷键(在我的系统上设置为了 Command-p)快速唤出
并且支持搜索(虽然很遗憾图片没办法搜索)
当需要在两个应用间复制粘贴多段内容的时候,Clipboard 就派上用场了。只需要先把需要的每一段内容在一个应用中分别复制一次,打开另一个应用后唤出 Clipboard,便可以把刚才复制的内容逐个粘贴进来。每当我在一些地方看到有趣的图片想要分享给微信或者 QQ 的朋友时,也是打开微信或者 QQ 后进入 Alfred 的 Clipboard 浏览——打开 Clipboard 后,敲入“Image”,便可以只查看记录在剪贴板中的图片了,并且还可以在发送前预览
Alfred 的 Snippets
Snippets 算是我近期才挖掘到并开始重度使用的功能,用一句话概括,就是“长话短说”。在 Snippets 中可以新建一个较短的关键字来代替一串较长的输入,例如我就分别用了 gcd、gct,以及 gmd 来代替切换到 develop 分支、切换到 test 分支,以及合并 develop 分支这三条常用的 Git 操作命令
之后既可以通过快捷键唤出 Snippets 面板的方式来输入短语,也可以直接在短语定义时勾选【Auto expandsion allowed】来做到输入短语后自动展开为完整的内容。下图演示的是输入 gcd 后自动展开为完整的命令
我现在已经积累了很多的短语了,不仅提高了输入的速度,也降低了重复输入这些内容的出错率,实在是居家旅行 coding 必备。
Alfred 的 Workflow
购买 Alfred 的 Powerpack 后就可以开启 Workflow 的功能了,实际上,在我真正开始用 Alfred 之前(还在用着 Windows 的时候),对 Alfred 的了解基本上局限于“它拥有一个很强大的叫做 Workflow 的功能”这样,可以说,让 Alfred 如此闻名遐迩的就是它的 Workflow 特性吧——不过后来我才知道原来 Mac 自带一个叫做 Automator 的类似的功能。
刚开始接触 Workflow 的时候,我也沉迷于在网上搜罗别人写好的来用,慢慢地才发现这些其他人经常(在知乎的答案里)列举到的 Workflow,其实并不适合我。有一两个觉得眼前一亮的,在使用了一两次之后也就不怎么用了。现在,我自己写了一些 Workflow,倒是显著地提升了我的开发过程。
比较合适作为例子的是我写的三个用于处理时间的 Workflow。一个是用于将日期时间字符串转换为 UNIX 时间戳(毫秒单位)的 Workflow,名为 gt——取的是 get time 之意。使用起来的效果大致如下
这个 Workflow 最终会把结果复制到剪贴板中,便于在其它应用中使用。由于工作内容的缘故,我常常会需要获取某一个时候的 UNIX 时间戳(毫秒单位)。在有这个 Workflow 之前,我都是打开 iTerm 运行 node,然后敲入
new Date(‘2018-11-15 00:00:00’).getTime();
这般的代码来得到结果的,不仅要在不同的应用间切换来切换去的,而且还需要重复地敲入 new、Date,以及 getTime 等字眼,实在是一件很低效的事情。使用了 gt 之后,感觉幸福感也提高了很多。
另一个 Workflow 名为 wt——取的是 what time 之意,它的作用跟 gt 相反,是将毫秒数转换为可读的日期时间字符串,效果如下
最后一个 Workflow 名为 int——即 I need time,它可以提供特定的一些时刻的时间戳,例如【今天零点】这样的特定的时刻。这三个 Workflow 的入口节点都是一个 Script Filter,int 的使用效果如下
Alfred 的 Workflow 还可以做很多的事情。它是一个入口,很适合用于不需要肉眼查看含有大段文字的结果的交互场景,例如对字符串做编码转换、计算字符串的摘要、通过 AppleScript 调起微信联系人,以及控制音量等等,只要好好利用,就可以提升平时的使用效率。程序员朋友们,不妨一起来发挥自己的创造力吧。