值得使用的软件之Alfred

Alfred是一款所谓的“生产力工具”,可以理解为就是帮助Mac用户提高日常事务的处理效率的工具,在我还没有入手MBP的时候就已经(在知乎上)听闻了这款软件的大名了。实际使用了之后发现确实可以提升一些事情的处理效率,是一款值得身为程序员的读者朋友使用的应用。接下来我会举一些例子来说明一下,希望可以传达到我的感受。献上我的Alfred使用统计
Alfred的使用统计

Alfred的Clipboard

剪贴板真是一个再常用不过的功能了,我想所有的读者朋友应该都使用过复制&粘贴的功能——不管是在Windows上面的Ctrl-c Ctrl-v也好,还是在Mac上面的Command-c Command-v也罢。Alfred的Clipboard功能可以认为是一个强化版的剪贴板,它可以通过快捷键(在我的系统上设置为了Command-p)快速唤出
Alfred唤出Clipboard

并且支持搜索(虽然很遗憾图片没办法搜索)
在Clipboard中搜索

当需要在两个应用间复制粘贴多段内容的时候,Clipboard就派上用场了。只需要先把需要的每一段内容在一个应用中分别复制一次,打开另一个应用后唤出Clipboard,便可以把刚才复制的内容逐个粘贴进来。每当我在一些地方看到有趣的图片想要分享给微信或者QQ的朋友时,也是打开微信或者QQ后进入Alfred的Clipboard浏览——打开Clipboard后,敲入“Image”,便可以只查看记录在剪贴板中的图片了,并且还可以在发送前预览
在Clipboard中搜索图片

Alfred的Snippets

Snippets算是我近期才挖掘到并开始重度使用的功能,用一句话概括,就是“长话短说”。在Snippets中可以新建一个较短的关键字来代替一串较长的输入,例如我就分别用了gcd、gct,以及gmd来代替切换到develop分支、切换到test分支,以及合并develop分支这三条常用的Git操作命令
在Snippets中定义短语

之后既可以通过快捷键唤出Snippets面板的方式来输入短语,也可以直接在短语定义时勾选【Auto expandsion allowed】来做到输入短语后自动展开为完整的内容。下图演示的是输入gcd后自动展开为完整的命令
自动展开Snippets中的短语

我现在已经积累了很多的短语了,不仅提高了输入的速度,也降低了重复输入这些内容的出错率,实在是居家旅行coding必备。

Alfred的Workflow

购买Alfred的Powerpack后就可以开启Workflow的功能了,实际上,在我真正开始用Alfred之前(还在用着Windows的时候),对Alfred的了解基本上局限于“它拥有一个很强大的叫做Workflow的功能”这样,可以说,让Alfred如此闻名遐迩的就是它的Workflow特性吧——不过后来我才知道原来Mac自带一个叫做Automator的类似的功能。

刚开始接触Workflow的时候,我也沉迷于在网上搜罗别人写好的来用,慢慢地才发现这些其他人经常(在知乎的答案里)列举到的Workflow,其实并不适合我。有一两个觉得眼前一亮的,在使用了一两次之后也就不怎么用了。现在,我自己写了一些Workflow,倒是显著地提升了我的开发过程。

比较合适作为例子的是我写的三个用于处理时间的Workflow。一个是用于将日期时间字符串转换为UNIX时间戳(毫秒单位)的Workflow,名为gt——取的是get time之意。使用起来的效果大致如下
gt的使用效果

这个Workflow最终会把结果复制到剪贴板中,便于在其它应用中使用。由于工作内容的缘故,我常常会需要获取某一个时候的UNIX时间戳(毫秒单位)。在有这个Workflow之前,我都是打开iTerm运行node,然后敲入

1
new Date('2018-11-15 00:00:00').getTime();

这般的代码来得到结果的,不仅要在不同的应用间切换来切换去的,而且还需要重复地敲入new、Date,以及getTime等字眼,实在是一件很低效的事情。使用了gt之后,感觉幸福感也提高了很多。

另一个Workflow名为wt——取的是what time之意,它的作用跟gt相反,是将毫秒数转换为可读的日期时间字符串,效果如下
wt的使用效果

最后一个Workflow名为int——即I need time,它可以提供特定的一些时刻的时间戳,例如【今天零点】这样的特定的时刻。这三个Workflow的入口节点都是一个Script Filter,int的使用效果如下
int的使用效果

Alfred的Workflow还可以做很多的事情。它是一个入口,很适合用于不需要肉眼查看含有大段文字的结果的交互场景,例如对字符串做编码转换、计算字符串的摘要、通过AppleScript调起微信联系人,以及控制音量等等,只要好好利用,就可以提升平时的使用效率。程序员朋友们,不妨一起来发挥自己的创造力吧。