Alfred 3 使用体验与心得

前言

从很早就开始使用Alfred,在我看来,它是Mac上最牛逼的神器,没有之一

它的核心界面就是一个搜索框,但是这个搜索框可以高度定制,如果你脑洞够大,你甚至可以为所欲为。这个放到后面说。

使用姿势

首先,最最基础的功能,用它来进行搜索和切换窗口。比如在写代码过程中,经常需要面对Google编程。

我猜大家都是这么干的:
普通青年:鼠标移动到Dock,click
文艺青年:⌘ + Tab

而Alfred用户是这么干的:
Alfred用户:⌥ + space , input 'g'

(上面的快捷键并不是默认的,个人习惯调整为 ⌥ + space)

这么空口白说对比可能不是很直观,上个视频吧:

上述视频没有加速播放哦,有没有感觉很快呢?

上面我们演示了切换,接下来我们演示搜索:

快如飞有木有啊。。

骚操作

首先是计算器:


回车即可将结果粘贴到剪贴板

Snippets:


将常用文本用keyword保存,比如邮箱,账号等,在任何地方输入keyword都会自动替换为预设文本。

当然还有很多好玩的Feature,剩下的你们慢慢发掘。

WorkFlow

这是Alfred最强大的地方,你可以利用workflow自由定制你需要的功能,并且不需要多高的成本就能完成。它支持常见语言,如Shell、PHP、Python、Ruby、JavaScript等等,当然它也支持外部脚本。

Github上有很多已经做好的WorkFlow,你可以直接导入使用,比如查IP:

当然,你可以自己定制功能。在这里,我制作一个简易的时间戳转换工具Demo,用来演示WorkFlow的制作过程。

新建Workflow

首先新建一个空白的Workflow

然后填写WorkFlow基本信息,点击 Create即可创建新的WorkFlow。

编写脚本

在Workflow中空白处 右键,按照下图选择创建的项:

不出意外,你会看到这样的页面:

Keyword: 触发该Workflow的关键字
Placeholder Title: 触发到关键字时显示的title,可以理解为Name
Placeholder Subtext: 触发到关键字时显示的subtext,可以理解为description
“Please Wait” Subtext: 脚本未返回结果时的等待文案
Language: 使用的语言

填写完毕之后,大致是这个样子的:

可以看到,参数设置为了 Argument Optional,这是因为我希望的功能是输入”tt”反馈的结果是当前时间戳,加上时间戳参数后反馈结果是格式化后的时间戳。

效果如下:

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
TIMESTAMP={query}
NOWTIMESTAMP=$(date +%s)
if [ ! -n "$TIMESTAMP" ]
then
cat<<EOB
<?xml version="1.0"?>
<items>
<item uid="timestamp" arg="$NOWTIMESTAMP">
<title>Current timestamp: $NOWTIMESTAMP</title>
<subtitle>Press Enter to paste, or Cmd+C to copy</subtitle>
<icon>icon.png</icon>
</item>
</items>
EOB
else
NOWDATE=$(date -r${TIMESTAMP} "+%Y-%m-%d %H:%M:%S")
cat<<EOB
<?xml version="1.0"?>
<items>
<item uid="nowdate" arg="${NOWDATE}">
<title>Current date: ${NOWDATE}</title>
<subtitle>Press Enter to paste, or Cmd+C to copy</subtitle>
<icon>icon.png</icon>
</item>
</items>
EOB
fi

Workflow要求输出格式为xml,所以我们必须输出上述格式才行,注意uid不能重复。

最后的问题来了,如何做到回车就粘贴到剪贴板呢?

我们继续添加组件:

添加好了之后,连接该组件:

注意:<item uid="nowdate" arg="${NOWDATE}"> 粘贴的内容是这里的arg参数,千万别忘了传进去哦。