📌 项目地址:[]() | ⭐ 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,exportif颜色不同,注释灰色,行号整齐排在左边。内容超过一屏自动进入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秒装一下试试。

这篇文章对你有帮助吗?

发表回复