跳到正文
发现
bat:带语法高亮的 cat 替代品
命令行工具开发者工具

bat:带语法高亮的 cat 替代品

一个支持语法高亮与 Git 集成的 cat 替代命令行工具,适合开发者在终端中查看文件。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
v0.26.1
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

bat 是一个用 Rust 编写的 cat(1) 替代品,在输出文件内容的同时提供语法高亮、Git 修改标记、非可打印字符显示和自动分页。它兼容 cat 的用法,可以直接在终端里查看单个或多个文件,也可以处理标准输入。

主要功能

  • 语法高亮:支持大量编程语言和标记语言。

  • Git 集成:与 git 通信,在左侧栏显示相对于索引的修改标记。

  • 显示不可打印字符:使用 -A/--show-all 选项显示并高亮非可打印字符。

  • 自动分页:输出超过一屏时默认交给分页器(如 less);可用 --paging=never 关闭,或在配置文件中设置。

  • 兼容 cat:检测到非交互终端(管道或重定向)时,无论 --pager 如何设置,都会退化为直接输出纯文件内容,因此可作为 cat 的直接替代。

安装与使用

各平台安装方式(节选):

brew install bat            # macOS / Linux via Homebrew
sudo apt install bat        # Ubuntu / Debian
pacman -S bat               # Arch Linux
dnf install bat             # Fedora
apk add bat                 # Alpine Linux
winget install sharkdp.bat  # Windows
choco install bat           # Windows via Chocolatey

基本用法:

bat README.md            # 显示单个文件
bat src/*.rs             # 一次显示多个文件
curl -s https://sh.rustup.rs | bat        # 从 stdin 读取并自动判断语法
yaml2json .travis.yml | json_pp | bat -l json   # 显式指定语言
bat -A /etc/hosts        # 显示并高亮非可打印字符
bat -n main.rs           # 只显示行号

与其他工具组合:

# 作为 fzf 的预览器
fzf --preview "bat --color=always --style=numbers --line-range=:500 {}"

# 配合 find / fd
find … -exec bat {} +
fd … -X bat

# 持续监控日志
tail -f /var/log/pacman.log | bat --paging=never -l log

# 查看 Git 历史版本
git show v0.6.0:src/main.rs | bat -l rs

# 作为 man 的着色分页器
export MANPAGER="bat -plman"
man 2 select

给帮助信息着色:

alias bathelp='bat --plain --language=help'
help() {
    "$@" --help 2>&1 | bathelp
}

注意事项

  • 部分较旧的 Ubuntu/Debian 发行版中可执行文件名为 batcat(与另一个包重名),若 bat --version 不可用可尝试 batcat --version,或建立软链接/别名:ln -s /usr/bin/batcat ~/.local/bin/bat。
  • 若希望在 shell 中把 cat 别名为 bat 并保留原有行为,可使用 alias cat='bat --paging=never'。
  • 需要在 Windows 上预先安装 Visual C++ Redistributable。
  • 从标准输入读取时,只有在能从首行(通常是 shebang,如 #!/bin/sh)判断出语言时才会高亮,也可用 -l 显式指定。
  • 行号和 Git 标记会影响复制文件内容,此时可用 -p/--plain 或直接管道输出,bat 会自动输出纯文本。

本作品整理自 GitHub 开源项目 sharkdp/bat,原作者 @sharkdp,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v0.26.1当前版本

    为 -h 与 --help 输出增加分页;修复 --list-themes 配合显式分页器时卡住、行范围负值解析、管道时装饰误用、--help 读取配置等问题,并更新多项语法定义。

评论