搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

在终端里替代 cat 的文件查看工具,支持语法高亮、Git 修改标记和自动分页。

61,201
3,068
Rust
Apache-2.0
创建于 8 年前

项目介绍

bat 面向需要在终端中阅读文件内容的用户,用更易读的方式替代 cat。它会为多种编程语言和标记语言提供语法高亮,在侧栏显示当前文件相对 Git 索引的修改标记,也可以通过 -A/--show-all 展示并高亮不可打印字符。默认情况下,输出较长时会通过 less 或配置的分页器翻页;一旦输出被管道接走或重定向到文件,它又退回纯文本输出,保持与 cat 类似的兼容性 README lines 22–53。项目使用 Rust 编写,除了命令行工具,也提供库接口供其他程序调用其格式化输出能力。

快速使用

在 Ubuntu 20.04+、Debian 11+ 等 Debian 系发行版上,可以直接从系统仓库安装:

sudo apt install bat

部分较旧的系统因包名冲突会把可执行文件安装为 batcat。如果 bat --version 不可用,先检查 batcat --version,再按需建立软链接或别名 README lines 256–277。安装后查看文件:

bat README.md

终端会显示带高亮、行号和文件头的内容。也可以用 bat src/*.rs 一次查看多个文件,或用 bat -A /etc/hosts 显示不可打印字符 README lines 54–85。其他平台和包管理器的安装方式(Homebrew、WinGet、Chocolatey、Scoop、Nix 以及预编译发布包)见 README 的安装章节。

管道与工具集成

当输出被管道接走或重定向时,bat 默认输出纯文本,只有显式要求时才保留装饰。因此 bat main.cpp | xclip 或通过重定向写文件都能正常工作 README lines 168–175。作为 fzf 预览器时要加 --color=always;配合 tail -f 时则需要关闭分页并显式指定语言:

tail -f /var/log/pacman.log | bat --paging=never -l log

README lines 135–141

使用约束

语法高亮在支持 truecolor 的终端中效果最好,否则可选用内置的 8-bit 主题。bat 原生支持 UTF-8 和 UTF-16,其他编码需要先用 iconv 等工具转换 README lines 877–885。Windows 上需要安装 Visual C++ Redistributable,分页还需要自行提供 less 等分页器。自定义语法和主题要放入配置目录,并通过 bat cache --build 重建缓存。项目采用 MIT 或 Apache-2.0 双许可证。

HotRepo 点评

bat 是一个成熟且使用面很广的终端工具:截至 2026 年 11 月 6 日的快照,它有 61,118 个 Star 和 3,055 个 Fork,在 Rust 日榜上单日新增 128 个 Star,排名第 16。Hacker News 上关于 v0.26.0 的讨论集中在新增的内置分页器,以及“Unix 组合式设计”与“一体化查看体验”之间的取舍;一位使用多年的用户称它是经过认真设计的 cat/less 替代品 评论。从本站视角看,它属于稳定耐用的日常工具,价值在文件查看本身,而不是新项目式的增长故事。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Bat: Cat with syntax highlighting
▲ 191 · 95 条评论 · 2025年10月5日
Bat v0.26.0
▲ 149 · 74 条评论 · 2025年10月20日
bat, a cat(1) clone with syntax highlighting, Git integration written in Rust
▲ 40 · 6 条评论 · 2020年10月21日