ago:纯 zsh 写的历史命令搜索,按命令名分组,零依赖

vvenvw 2026-10-22 22:04 1

平时找以前用过的命令,大多用 fzf 的 Ctrl-R 或者 Atuin 。两个都很好用,但我想要一个不用装任何东西、source 一下就能用的,另外希望能按命令名分组来浏览,所以用纯 zsh 写了一个:ago 。


GitHub: https://github.com/vvenv/ago


$ 搜索 › push
ago 3
➤ git git push origin main
pnpm pnpm push:docs
docker docker push vvenv/app
↑↓ 选择 | → 进入 | Del 删除 | ^O 次数 | ^T 时间 | ^U 清空 | ESC 退出

主要功能



  • 零依赖:纯 zsh ( 5.3+),不需要 fzf 、Python 或者别的二进制,macOS 自带的 zsh 就能用

  • 按命令名分组:打开后先看到 git 、pnpm 、docker 这样的分组,→ 进入、← 返回,都按最近使用排序

  • 模糊搜索:多个关键词用空格分开,支持中文,匹配的字会高亮;输入 gps 也能找到 git push

  • 先编辑再执行:选中的命令放到命令行,不会直接执行

  • 删除历史:可以删一条命令或整组,删除前要确认,还会自动备份;删除时原样保留其余字节,不会弄坏历史文件

  • 统计报表:ago stats 列出最常用的命令和子命令,可以按天数或命令名筛选

  • 安全:历史里的 $(...) 只当作文本处理,有测试保证


安装


sh -c "$(curl -fsSL https://raw.githubusercontent.com/vvenv/ago/main/install.sh)"

装好后默认接管 Ctrl-R (可以用 AGO_KEY 换别的键),ago uninstall 卸载时会还原。


欢迎试用和提意见~

最新回复 (1)
  • Dik3047 10-23 08:12
    1楼
    零依赖、source 一下就能用这点很舒服,fzf/Atuin 再好也要多装一层。按命令名分组浏览也比一长串模糊匹配更直觉。

    顺便披露:我也在做独立开发,做了个追剧记录工具 TV Tracker ( Flutter 三端,不播正片),https://tv-tracker.uk/go?c=v2ex
* 帖子来源V2EX
返回