Alfred 是一款功能非常強大,能有效提升 Mac 電腦使用效率的神器。可以說有了 Alfred 你就基本上可以脫離滑鼠實現各種操作。相比 Mac 自帶的聚焦搜尋,完全可以稱得上擁有碾壓性的優勢。
下圖是 Alfred 圖示, 官網為:https://www.alfredapp.com/
在介紹它的使用前,我們先來了解一下它的基本功能。
基本功能介紹
首先使用快捷鍵 Alt + 空格 開啟 Alfred 操作介面。
Alfred 的常用基礎功能為查詢文件、指定網站搜尋、剪下板歷史、整合 iTerm2、計算機字典翻譯、整合 1password、系統功能、放大顯示內容等等 。 接下來挑選其中幾個為大家做簡單展示。
查詢文件
可以通過以下四種快捷方式進行文件查詢操作:\
- open: 開啟檔案
- find: 開啟文件目錄
- in: 在檔案中搜尋
- tags: 指定檔案標籤
下圖是 find 命令的使用示例。
指定網站進行搜尋
Alfred 可以指定搜尋引擎關鍵詞,簡化搜尋方式。
以自定義百度為搜尋引擎為例,如果我們要讓 bd 作為百度搜尋引擎的關鍵詞,那我們可以進行如下配置:
完成配置後就可以使用 bd 關鍵字指定百度作為搜尋引擎了。
剪貼簿歷史
我們可以設定檔案儲存的時長、啟用剪下板的快捷鍵、或者直接使用 clipboard 啟用、使用 clear 清除剪下板。
整合 iTerm2
作為 Mac 最好用的命令列工具 iTerm2,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
輸入 ls -al 回車會將命令自動在 iTerm2 中執行。
使用工作流程
瞭解基本功能後,重點還是迴歸到 Alfred 的工作流程,官方提供了介面文件方便使用者進行呼叫。\
介面文件:https://www.deanishe.net/alfr...
上圖是 Alfred 的工作流程示意圖,我們通過使用 code 命令根據專案目錄選擇 pycharm 或 vscode 開啟專案資料夾,這一例子來看一下 Alfred 的工作流程。
首先新增一個工作流,指定 Name 為 code。
然後設定專案目錄公共變數。
右鍵新增一個 script filter 指令碼。
如果需要新增指令碼檔案,可以右鍵點選 Open in Finder 開啟該工作流所在目錄,從 GitHub 下載最新版本的 Alfred-Workflow(https://github.com/deanishe/a...),解壓並將其中的 workflow 目錄複製到開啟的這個工作流目錄中。
新建 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 工作流,新增傳遞引數變數。
新增列表選擇,新增使用者選擇列表。
新增條件判斷,辨別使用者選擇的軟體是哪一個。
然後新增兩個分支 Open File 操作,並使用相應程式開啟檔案。
最後在完成全部設定後開啟 Alfred 彈框,輸入 code + 專案目錄,開始你的 Alfred 使用之旅吧。