📌 项目地址:[]() | ⭐ 0 颗星 | 📜 未标注
我在终端里看配置文件、日志、代码片段。cat用了好几年,痛点很小但每天都在戳:
- 白底黑字,注释和关键字混在一起,要凑近屏幕才分得清。
- 想看行号得敲
cat -n,或者打开vim再退出。 - 文件一长直接刷屏,不加
| less就看不到开头。 - 同时看多个文件时,内容粘在一起,分不清哪个文件对应哪段。
单个问题不大,但每天重复十几二十次,累积起来是能感受到的时间损耗和眼睛疲劳。我决定换工具。
bat是什么
bat是sharkdp用Rust写的cat替代品,GitHub上54000+ star。README第一句话:“A cat(1) clone with wings”。翅膀指的是语法高亮、行号、自动分页。高亮引擎用了Sublime Text的语法包,覆盖200多种语言。单个二进制大概2MB,装完直接用。
安装(选一种):
# macOS
brew install bat
# Ubuntu/Debian下载deb包安装
# 或用cargo
cargo install bat
装完试试:
bat ~/.bashrc
默认主题Monokai Extended,export和if颜色不同,注释灰色,行号整齐排在左边。内容超过一屏自动进入less模式,上下翻页,按q退出。
四个我每天用的场景
1. 一次看多个文件,带分隔标题
bat src/utils/*.js
每个文件前面有一个标题栏,显示文件名和图标(比如 script)。同时审查几个相关文件时不会看串行。
2. git仓库里直接看修改痕迹
在git仓库里执行bat modified.js,行号左侧会显示+或-,标记新增和删除行。这比git diff直观,因为能看到完整上下文,不用来回对比行号。
3. 管道和重定向不出乱子
我设了别名alias cat=bat。一开始担心管道带出颜色字符,实际测:
bat file.txt | grep error
bat检测到stdout不是终端,自动关闭颜色和分页,输出纯文本。重定向到文件也一样干净。如果还是不放心,可以换个别名,比如alias ct=bat。
4. 只看文件某几行
bat -r 30:50 config.yml只显示30到50行,带高亮和行号。等效于sed -n '30,50p'但更直观。
主题和配置花不了几分钟
查看已有主题:
bat --list-themes
临时指定:
bat --theme=OneHalfDark file.txt
选好了写进~/.bat/config:
echo '--theme="OneHalfDark"' >> ~/.bat/config
以后每次打开都用这个主题。
配置文件里还能调:
- 只要语法高亮,不要行号和标题:
--style=plain - 不想分页:
--paging=never - 用more代替less:
--pager=more
这些README里都有示例。
和cat的对比
| 场景 | cat的做法 | bat一步到位 |
|---|---|---|
| 看配置文件 | 无高亮 | 自动语法高亮 |
| 想知道行号 | cat -n或自己数 |
默认显示行号 |
| 长文件 | 刷屏,自己加| less |
自动分页 |
| 看git修改 | 跑git diff再定位 |
当前文件直接显示+/- |
| 同时看多个文件 | 内容混在一起 | 标题栏分隔 |
| 只看某几行 | 用sed或awk | -r参数带高亮 |
值不值得换的一个判断
我每天在终端看十几次文件,每次省下两三次按键,省下从刷屏里找位置的几秒钟。不是惊天动地的改进,但装了之后我就没再用过原始cat。装一次,配个主题,之后不用再想这事。
如果你也常年在终端里读文件,值得花30秒装一下试试。