什么是 Television?
Television(命令名为 tv)是一个围绕“频道”构建的模糊查找器。频道是一个具名的数据源,拥有自己的预览命令、按键绑定和动作:文件、文件内的文本、目录、git 仓库、环境变量、进程、Docker 容器,或任何你能用几行 TOML 描述出来的东西。它边输入边搜索,为选中项显示预览,并把结果交给 shell、编辑器或你自己的命令。
tv update-channels 会从上游拉取最新的频道原型,这些原型需要相匹配的程序版本。Debian 与 Ubuntu 都没有收录它,所以用最新构建不是锦上添花,而是唯一能用上它的方式。
⚡ Television 的主要功能
🔎 频道,不只是文件
文件、文本、目录、git 仓库、环境变量、进程和容器都是频道——tv list-channels 会列出当前构建自带的频道。
👁️ 内建预览
每个频道都可以定义预览命令,于是结果列表旁边就能看到文件内容、日志、差异或容器详情。
🧵 用 TOML 随意改造
一个频道就是一个小小的 TOML 文件,描述数据源命令、预览、按键和动作——新增一套工作流,只是在 ~/.config/television/cable/ 里放一个文件。
⌨️ Shell 集成
tv init 会把智能补全绑到 Ctrl+T,把历史搜索绑到 Ctrl+R,支持 bash、zsh 和 fish。
🚀 天生就快
异步并行的匹配器让面对超大数据源时输入依然跟手,预览按需计算,还可以缓存。
🧰 临时模式
--source-command 与 --preview-command 可以把两条 shell 命令变成一次性的查找器,完全不必先写频道。
apt upgrade 就能让你保持最新。
📦 从 deb.griffo.io 安装
第 1 步:添加仓库
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 有一个永久免费的镜像。 deb-free.griffo.io 永久免费提供软件包 — 无需账号、无需订阅,最多落后上游 2 个月,安全修复立即发布。目前收录 cliamp、Ghostty、lazydocker、Oh My Posh 和 Zed;Television 不在其中,因此今天只能通过上面的仓库安装 — 提出请求即可将其加入。
🧩 关于 extrepo 选项。 extrepo 是 Debian 官方用于管理第三方仓库的工具:它会替你写好 sources 文件并安装签名密钥,并在使用前先对照签名元数据校验该密钥。本仓库以 griffo 之名登记其中,永久免费镜像则为 griffo-free,因此在 Debian(bookworm、trixie、forky、sid)上,上面的命令就是全部配置。
extrepo 只负责 sources 文件和密钥,订阅凭据仍然要写入 /etc/apt/auth.conf.d/deb.griffo.io.conf。Ubuntu 不在覆盖范围内,因为 extrepo 只发布 Debian 各套件的元数据:在 Ubuntu 上请使用 sudo 或 root 的命令。
第 2 步:安装 Television
# 安装最新版 Television
sudo apt install television
# 验证安装
tv --version# 安装最新版 Television
apt install television
# 验证安装
tv --version第 3 步:首次运行与 shell 集成
# 看看当前构建自带哪些频道
tv list-channels
# 搜索当前目录下的文件
tv files
# shell 集成:Ctrl+T 补全,Ctrl+R 搜索历史
echo 'eval "$(tv init bash)"' >> ~/.bashrc
# 手册页以及 bash、zsh 和 fish 补全都随软件包一起安装
man tv🎯 基本用法示例
日常搜索:
# 默认频道
tv
# 最常用的几个频道
tv files
tv text
tv dirs
tv git-repos
# 从当前目录以外的位置开始
tv files ~/src
# 拉取最新的频道原型
tv update-channels用任意命令创建临时频道:
# 把任意命令变成模糊查找器
tv --source-command "fd -t f -H"
# 并基于选中的条目生成预览
tv --source-command "git branch --format='%(refname:short)'" \
--preview-command "git log -20 --oneline {}"
# 保留数据源命令输出的颜色
tv --source-command "rg --color=always -n TODO" --ansi
# 保持数据源自身的顺序,而不是按匹配度排序
tv --source-command "ls -t" --no-sortShell、补全与自定义频道:
# 在当前 shell 中启用 Ctrl+T 和 Ctrl+R
eval "$(tv init zsh)"
# 为 tv 自身的子命令启用补全
tv completions fish > ~/.config/fish/completions/tv.fish
# 自定义频道放在 cable 目录中
mkdir -p ~/.config/television/cable
$EDITOR ~/.config/television/cable/tldr.toml
# 升级之后,清理配置里由程序写入的默认值
tv migrate-config🔧 工具集成
Television 天生就是用来和你其余工具粘在一起的:
- 你的 shell:
tv init bash、zsh或fish会加上智能补全和历史搜索,任何频道都能把结果直接写进命令行 - 编辑器:社区为 Neovim、Vim、VS Code、JetBrains 系列 IDE 和 Zed 都做了集成,背后都是同一个程序
- ripgrep 之类:频道就是 shell 命令,因此
rg、fd、git、docker或你自己的脚本都可以充当数据源 - 配置:
~/.config/television/config.toml管默认值和按键,cable/*.toml管频道本身 - 其他一切:选中的条目会输出到 stdout,因此
tv能像任何命令一样与管道、别名和脚本组合
🚀 为什么选择 deb.griffo.io?
- 官方 Debian:没有收录 Television——标准系统上
apt install television会失败 - cargo install television:版本较新,但每台机器都要编译 Rust,装在 apt 之外,也没有手册页和补全
- 上游安装脚本:很方便,但它绕过包管理器往系统里写文件,并按自己的节奏自行更新
- deb.griffo.io:最新版本,并自动更新
- ✅ 频道与程序版本相配:频道原型会随工具一起演进,只有使用较新的构建,
tv update-channels才有用而不是添乱 - ✅ 唯一的 apt 来源:Debian 与 Ubuntu 官方源都没有 Television;本仓库打包官方上游构建
- ✅ 自动更新:上游发布后数小时内更新软件包
- ✅ 完整软件包:上游二进制文件安装为
/usr/bin/tv,并附带tv.1手册页以及 bash、zsh 和 fish 补全 - ✅ 三种架构,并显式声明冲突:amd64、arm64 和 i386;软件包还声明与
treeviewx冲突,因为后者占用同一个/usr/bin/tv路径,这样 apt 会明确告诉你,而不是两个包互相覆盖 - ✅ 多发行版:支持 Bookworm、Trixie、Forky 和 Sid
- ✅ 易于维护:使用标准 apt 命令即可更新
📦 软件包构建仓库
Debian 软件包在这个 GitHub 仓库中自动构建和维护:
- 📼 television-debian - 最新版本构建
🔗 相关软件包
deb.griffo.io 同样提供:
- fzf - 经典的模糊查找器,如果你更喜欢它的模式
- ripgrep - 快速递归搜索,可作为频道的数据源
- zoxide - 目录跳转工具,和 tv dirs 很搭
- Yazi - 终端文件管理器,用来查看找到的内容