【程序员的实用工具推荐】 Mac 效率神器 Alfred

Alfred 是一款功能非常强大,能有效提升 Mac 电脑使用效率的神器。可以说有了 Alfred 你就基本上可以脱离鼠标实现各种操作。相比 Mac 自带的聚焦搜索,完全可以称得上拥有碾压性的优势。

下图是 Alfred 图标, 官网为:https://www.alfredapp.com/

【程序员的实用工具推荐】 Mac 效率神器 Alfred

在介绍它的使用前,我们先来了解一下它的基本功能。

基本功能介绍

首先使用快捷键 Alt + 空格 打开 Alfred 操作界面。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

Alfred 的常用基础功能为查询文档、指定网站搜索、剪切板历史、集成 iTerm2、计算机字典翻译、集成 1password、系统功能、放大显示内容等等 接下来挑选其中几个为大家做简单展示。

查询文档

可以通过以下四种快捷方式进行文档查询操作:\

  • open: 打开文件
  • find: 打开文档目录
  • in: 在文件中搜索
  • tags: 指定文件标签

【程序员的实用工具推荐】 Mac 效率神器 Alfred

下图是 find 命令的使用示例。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

指定网站进行搜索

Alfred 可以指定搜索引擎关键词,简化搜索方式。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

以自定义百度为搜索引擎为例,如果我们要让 bd 作为百度搜索引擎的关键词,那我们可以进行如下配置:

【程序员的实用工具推荐】 Mac 效率神器 Alfred

完成配置后就可以使用 bd 关键字指定百度作为搜索引擎了。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

剪贴板历史

我们可以设置文件保存的时长、激活剪切板的快捷键、或者直接使用 clipboard 激活、使用 clear 清除剪切板。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

集成 iTerm2

作为 Mac 最好用的命令行工具 iTerm2,Alfred 也是拥有的。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

我们可以对它设置自定义命令,例如:

on alfred_script(q)
if application "iTerm2" is running or application "iTerm" is running then
run script "
on run {q}
tell application \"iTerm\"
activate
try
select first window
set onlywindow to true
on error
create window with default profile
select first window
set onlywindow to true
end try
tell the first window
if onlywindow is false then
create tab with default profile
end if
tell current session to write text q
end tell
end tell
end run
" with parameters {q}
else
run script "
on run {q}
tell application \"iTerm\"
activate
try
select first window
on error
create window with default profile
select first window
end try
tell the first window
tell current session to write text q
end tell
end tell
end run
" with parameters {q}
end if
end alfred_script

【程序员的实用工具推荐】 Mac 效率神器 Alfred

输入 ls -al 回车会将命令自动在 iTerm2 中执行。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

使用工作流程

了解基本功能后,重点还是回归到 Alfred 的工作流程,官方提供了接口文档方便用户进行调用。\

接口文档:https://www.deanishe.net/alfred-workflow/api/index.html

【程序员的实用工具推荐】 Mac 效率神器 Alfred

上图是 Alfred 的工作流程示意图,我们通过使用 code 命令根据项目目录选择 pycharm 或 vscode 打开项目文件夹,这一例子来看一下 Alfred 的工作流程。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

首先新增一个工作流,指定 Name 为 code。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

【程序员的实用工具推荐】 Mac 效率神器 Alfred

然后设置项目目录公共变量。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

右键新增一个 script filter 脚本。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

【程序员的实用工具推荐】 Mac 效率神器 Alfred

如果需要新增脚本文件,可以右键点击 Open in Finder 打开该工作流所在目录,从 GitHub 下载最新版本的 Alfred-Workflow(https://github.com/deanishe/alfred-workflow/releases/latest),解压并将其中的 workflow 目录复制到打开的这个工作流目录中。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

【程序员的实用工具推荐】 Mac 效率神器 Alfred

新建 index.py 文件,代码如下:

import sys
import os
from os import listdir
from os.path import isdir, join, expanduser from workflow import Workflow3, web, ICON_WEB # 获取文件列表
def getFileList():
args_list = wf.args
result = []
for path in args_list[1:]:
# path = wf.args[1]
log.debug('path: ' + path)
path = expanduser(path)
result.extend([{"file": f, "path": path} for f in listdir(path) if isdir(join(path, f))])
return result def main(wf):
# 获取搜索参数
searchKey = wf.args[0]
log.debug('searchKey: ' + searchKey)
# 文件列表缓存 3s
fileList = wf.cached_data('projects', getFileList, max_age=3)
# 根据 query 过滤目录
for item in fileList:
if (searchKey and (searchKey in item.get('file'))):
title = item.get('file')
wf.add_item(title=title, subtitle=item.get('path'), arg=os.path.join(item.get('path'), title), valid=True) # 把应该展示的内容发送给 Alfred
wf.send_feedback() if __name__ == '__main__':
wf = Workflow3()
log = wf.logger
sys.exit(wf.run(main))

回到 Alfred 工作流,添加传递参数变量。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

【程序员的实用工具推荐】 Mac 效率神器 Alfred

新增列表选择,添加用户选择列表。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

【程序员的实用工具推荐】 Mac 效率神器 Alfred

添加条件判断,辨别用户选择的软件是哪一个。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

【程序员的实用工具推荐】 Mac 效率神器 Alfred

然后新增两个分支 Open File 操作,并使用相应程序打开文件。

【程序员的实用工具推荐】 Mac 效率神器 Alfred

【程序员的实用工具推荐】 Mac 效率神器 Alfred

【程序员的实用工具推荐】 Mac 效率神器 Alfred

最后在完成全部设置后打开 Alfred 弹框,输入 code + 项目目录,开始你的 Alfred 使用之旅吧。

推荐阅读

## Golang 常见设计模式之选项模式

## 《逆局》最终 boss 隐藏自己的方式是?

上一篇:云原生 PostgreSQL 集群 - PGO:5分钟快速上手


下一篇:(五)WebRTC手记Channel概念