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

JSON 2022-06-16 10:21:35 5743

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/alfred-workflow/api/index.html


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


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



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


右键新增一个 script filter 脚本。



如果需要新增脚本文件,可以右键点击 Open in Finder 打开该工作流所在目录,从 GitHub 下载最新版本的 Alfred-Workflow(https://github.com/deanishe/alfred-workflow/releases/latest),解压并将其中的 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 使用之旅吧。

文章来自又拍云投稿


版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/392.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

关于作者
一个低调而闷骚的男人。
相关文章
国外程序员整理的Java资源大全(全部是干货)
CSS简单压缩小工具、不错,推荐下。
Mac下Charles-proxy 抓包工具,iPhone 抓包演示
Mac Fidder 抓包替代方案 Charles-proxy 抓包工具下载 + 安装 + 破解 charles.jar 下载
Java有读取配置文件,有读取ini配置文件
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统?
Http Get 请求,Java 请求工具类封装
json 解析与生成工具类 ,JSON操作讲解(附件)
对Log4j 日志工具类的封装,java LoggerUtils查看和下载
SpringBoot 集成Spring-data-redis,redis对象列化存储
最新文章
文件上传漏洞与防御 4058
前端构建工具选型指南:Webpack、Vite、Rollup、esbuild 深度对比 1444
物联网时代2026年时序数据库选型指南 1151
SaaS行业面临AI挑战:从“无限复用”到“灵活适应” 1269
神经网络:从构造到模型训练全链路解析 1168
一文吃透 Redis 核心存储结构:ziplist、listpack 与哈希表扩容 / 并发查询 1593
Linux sudo提权完整指南:从基础用法到生产级安全配置 691
XSS 和 CSRF 的本质区别及开发防御全解析 772
JVM垃圾回收(GC)全维度解析:从原理到调优实战 813
Linux动静态库与ELF加载全解析:从实操制作到底层原理 912
最热文章
免费天气API,天气JSON API,不限次数获取十五天的天气预报 783114
最新MyEclipse8.5注册码,有效期到2020年 (已经更新) 711464
苹果电脑Mac怎么恢复出厂系统?苹果系统怎么重装系统? 679993
Jackson 时间格式化,时间注解 @JsonFormat 用法、时差问题说明 562673
我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比 512621
Elasticsearch教程(四) elasticsearch head 插件安装和使用 484794
Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据... ... 302947
Java 信任所有SSL证书,HTTPS请求抛错,忽略证书请求完美解决 247433
Elasticsearch教程(一),全程直播(小白级别) 233097
谈谈斐讯路由器劫持,你用斐讯路由器,你需要知道的事情 228329
支付扫码

所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看

查看我的收藏

正在加载... ...