「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 可能更好一些, 这个其实也是为了快
相关推荐
tingyu7 天前
Maven聚合插件2.0版本发布:功能全面升级,开发效率再提升
后端·intellij idea
计算机毕设指导69 天前
基于微信小程序的电子数据取证知识测试系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij idea
龙华15 天前
IDEA 高效开发:Maven 项目依赖服务自动启动配置指南(适用于初级开发者)
maven·intellij idea
舒一笑21 天前
GitPulse:让代码的故事自己讲述
git·程序员·intellij idea
我命由我1234522 天前
Java NIO 编程 - NIO Echo Server、NIO Client(NIO 异步客户端、NIO Selector 异步客户端)
java·开发语言·网络·java-ee·intellij-idea·intellij idea·nio
喵个咪23 天前
代码特殊注释完整规范:IDE 支持、使用示例与团队协作指南
intellij idea·visual studio code
舒一笑23 天前
信息的建筑学:MyBatis Log Panda 如何重构开发者的认知地图
后端·sql·intellij idea
Linux Huang24 天前
【Dinky】IDEA运行出现HistoryServer异常
java·hadoop·flink·intellij idea
解道Jdon25 天前
IntelliJ IDEA 2025.3 全面对接 Spring7
spring boot·intellij idea
舒一笑1 个月前
PandaCoder 的解构与新生:为中文开发者造一束专注的光
后端·程序员·intellij idea