「IDEA&Alfred Workflow」快捷打开 IDEA 项目

01 引言

作为一名 javaer, 日常开发自然是离不开 IDEA, 经常需要打开不同项目的代码, 每次在 IDEA 里面选择项目自然是十分麻烦, 再加上有使用 Alfred 的习惯, 于是自己搞了一个简单的 Workflow 来实现快速打开 IDEA 项目, 实际效果如下图, 使用上下方向键选择, 按回车即可使用 IDEA 打开

02 准备工作

2.1 环境

macOS 14.5

2.2 JetBrains Toolbox

一个 JetBrains 官方的 APP, 提供了很多方便的管理 JetBrains 系列 IDE 的功能, 例如不需要去下载安装包直接在 APP 内安装 IDE, 版本升级/回退, 使用起来非常方便, 强力推荐. 这里需要使用到 toolbox 的一个功能是生成一个用于启动 IDEA 的脚本, 按照下面的步骤生成即可

2.3 Alfred

一个效率工具, 基础功能可以完全替代 macOS 搜索功能, 本文需要用到 Alfred 的付费功能 Workflows, 需要借助自定义的 shell 脚本实现搜索功能

2.4 ugrep

本来用的是 find 命令来做的, 但是想实现一些模糊匹配的效果, 最后改用了 ugrep

macOS 可以直接使用 Homebrew 安装

brew install ugrep

2.5 一个图标(非必需)

搜索出的目录加一个漂亮的图标, 增加仪式感

03 具体步骤

懒得看不想自己拖一个工作流的可以直接下载我导出的,Open-with-IDEA.alfredworkflow, 下载完成后双击导入配置一下环境变量即可

3.1 新建一个空白 Workflow

3.2 配置几个环境变量

为了保留一定的扩展性, 能够分享给其他人使用, 配置一些环境变量

  1. icon_path 搜索结果目录图标
  2. idea_shell_path 准备工作中生成的 idea shell 脚本的绝对路径
  3. workspace_dir 需要搜索的目录的绝对路径, 目前脚本只会检索这个目录-1层级的目录

3.3 拖拽构建自己的工作流

  1. 添加一个 Script Filter, 并配置触发的关键词, placeholder...
  2. 编写 shell 脚本, 这是最关键的步骤, 脚本的作用是检索目录并按照 Alfred 的要求生成输出 json 格式的结果
  3. 添加一个 Run Script, 接收上一部传过来的项目目录, 调用 idea shell 打开
  4. 最后别忘记把两个组件连起来
bash 复制代码
key_word=$1
icon_path=$icon_path
items=""
for dir in $workspace_dir
do
    for f in $(ls -l "$dir" | awk '/^d/ {print $9}' | ug -i -Z1 "$key_word")
    do
      # 修复路径拼接:如果 $dir 末尾没有 /,则自动补上
      if [[ "$dir" != */ ]]; then
          abs_path="$dir/$f"
      else
          abs_path="$dir$f"
      fi
      item='{"title":"'$f'","subtitle":"'$abs_path'","valid":true,"arg":"'$abs_path'","text":{"copy":"'$abs_path'"},"icon": {"path": "'$icon_path'"}}'
      if [ "$items" ]; then
        items="$items,"
      fi
      items="$items$item"
    done
done
echo '{"items":['${items}']}'
bash 复制代码
$idea_shell_path $1

04 其他

目前对我来说足够用, 但是其实还挺简陋的, 大佬可以来优化分享一下

  1. 只检索了一级目录, 这个是考虑到我所有项目都在一起, 还有就是要快
  2. 拼接 json 是用字符串硬拼的, 有些特殊字符可能有问题, 使用 jq 可能更好一些, 这个其实也是为了快
相关推荐
我会冲击波2 天前
告别手写注释!变量命名、注释IDEA插件更新了,AI帮你搞定一切代码注释
java·intellij idea
我会冲击波2 天前
功能分支落后于develop太多,需要把开发分支合并到功能分支吗?
git·intellij idea
舒一笑3 天前
我的开源项目-PandaCoder迎来史诗级大更新啦
后端·程序员·intellij idea
每天都要进步16 天前
抽奖系统(2)——注册/登陆
java·spring boot·intellij idea
阑梦清川8 天前
号称全球首个产设研一体的AI全栈工程师的腾讯IDE实力到底如何?我做了两个小工具,看看效果再评价吧
intellij idea
Jackson@ML9 天前
2025最新版IntelliJ IDEA Ultimate for Mac专业版安装使用指南
java·kotlin·intellij idea
舒一笑10 天前
撕碎语法教科书!PandaCoder教大模型「暴力越狱」逐字翻译
后端·程序员·intellij idea
街霸星星10 天前
让 Homebrew 成为你的 Mac (或 Linux) 软件包管理利器
mac·intellij idea
墨风如雪15 天前
Kiro来了!亚马逊放大招,软件开发要被AI“绑架”了吗?
aigc·intellij idea
一线大码18 天前
Gradle 高级篇之构建多模块项目的方法
spring boot·gradle·intellij idea