选择器
它长得像你的终端,因为它就在你的终端里
一条命令就在当前 shell 里打开选择器。模糊过滤候选,看一眼预览,按
Enter。cdh 完成跳转,把终端交还给你,然后退场。
- 候选进来时已经按 frecency 排好序,你真正常待的路径自然浮到最上面
- 直接输入,就在历史候选和 cdh 扫出来的目录里一起模糊过滤
- 移动选中行,预览跟着走,带 git 状态和上次访问时间
Tab收起预览让列表占满整宽,再按一次Tab把预览叫回来F1打开帮助,F2打开设置:语言、主题、预览、颜色、鼠标Esc清空查询,Enter跳转并把 shell 交回来
这段循环自己播放,也没有声音。如果你的系统偏好减少动效,看到的会是那一帧静图。
你会得到什么
真正干活的那几块
二进制、打分模型和选择器,各自给你什么。
会衰减的 frecency 打分
访问频次和最近性半衰期融合成一个分数,上个月常待的目录不会再挤掉你五分钟前打开的那个。$HOME 也不再霸占列表顶端。
模糊搜索,实时预览
敲一小段,列表边打边过滤。预览面板在你决定跳转之前,先给你看目录内容、git 分支、有没有改动,以及上次到这儿是什么时候。
历史之外,还有整棵目录树
候选池是「历史 ∪ 目录树」:后台扫描把你从没 cd 过的路径也补进来,一样搜得到。而排除一棵子树之后,它就真的不再出现。
一个 Rust 二进制,遵守 XDG
单个便于静态链接的二进制,MSRV 1.88。历史和状态分别落在 XDG_DATA_HOME 与 XDG_STATE_HOME 下,bash、fish、zsh 的 hook 各自只有几行。
七套主题
Graphite、Nord、Daylight、Mono、Dracula、Amber、Forest。不支持颜色的终端有一整套降级方案。
完整键位表
- ↑ ↓
- 上下移动
- Ctrl+P Ctrl+N
- 不用方向键移动
- Ctrl+↑ Ctrl+↓ PgUp PgDn
- 翻页
- Home End
- 首项,末项
- ← →
- 移动搜索光标
- Backspace Delete
- 删除光标前、光标处
- Ctrl+U
- 清空搜索
- Enter
- 跳转
- Tab
- 开关预览
- Ctrl+D
- 排除该目录及其子目录
- Ctrl+H F5
- 隐藏目录
- F1 ?
- 帮助,全角 ? 也行
- F2
- 设置
- F3 Ctrl+T
- 切换主题
- F4
- 排除清单
- Esc
- 关闭、清空、退出
鼠标也能用:单击选中,双击跳转,滚轮滚动。
中文与 English
整个 TUI 两种语言都讲,在设置里随时切换。搜索行也能正常处理全角输入。
右下角一个安静的立方体
一个线框立方体在右下角慢慢翻转,它待在列表排版之前就预留好的边槽里,所以永远不会盖住任何一行。无颜色模式下自动关掉,CDH_CORNER_3D=0 则彻底不出现。
安装
安装器到底动了什么
开头那条命令是最快的路。如果你想先看清楚再 pipe,或者干脆不 pipe,这里是全貌。
那一行命令,拆开看
- 把对应平台的 release 二进制下载到
~/.local/bin/cdh。 - 读
$SHELL判断你用哪个 shell,也接受--shell bash|zsh|fish。 - 把 hook 写进
~/.config/cdh/,并在 rc 文件里加一段带标记的引用。 - 历史和状态留在
XDG_DATA_HOME与XDG_STATE_HOME下。
全程不需要 root,也不会往 home 之外写任何东西。先读一遍脚本,再决定要不要 pipe。