bat-cat
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesebat - Better cat
bat - 增强版cat
cat具备语法高亮、行号显示和Git集成功能的替代工具。
catQuick Start
快速开始
Basic usage
基础用法
bash
undefinedbash
undefinedView file with syntax highlighting
查看带语法高亮的文件
bat README.md
bat README.md
Multiple files
查看多个文件
bat file1.js file2.py
bat file1.js file2.py
With line numbers (default)
显示行号(默认开启)
bat script.sh
bat script.sh
Without line numbers
不显示行号
bat -p script.sh
undefinedbat -p script.sh
undefinedViewing modes
查看模式
bash
undefinedbash
undefinedPlain mode (like cat)
纯文本模式(类似cat)
bat -p file.txt
bat -p file.txt
Show non-printable characters
显示不可打印字符
bat -A file.txt
bat -A file.txt
Squeeze blank lines
压缩空行
bat -s file.txt
bat -s file.txt
Paging (auto for large files)
分页显示(大文件自动启用)
bat --paging=always file.txt
bat --paging=never file.txt
undefinedbat --paging=always file.txt
bat --paging=never file.txt
undefinedSyntax Highlighting
语法高亮
Language detection
语言检测
bash
undefinedbash
undefinedAuto-detect from extension
根据文件扩展名自动检测
bat script.py
bat script.py
Force specific language
强制指定语言
bat -l javascript config.txt
bat -l javascript config.txt
Show all languages
查看所有支持的语言
bat --list-languages
undefinedbat --list-languages
undefinedThemes
主题
bash
undefinedbash
undefinedList available themes
查看所有可用主题
bat --list-themes
bat --list-themes
Use specific theme
使用指定主题
bat --theme="Monokai Extended" file.py
bat --theme="Monokai Extended" file.py
Set default theme in config
在配置文件中设置默认主题
~/.config/bat/config: --theme="Dracula"
~/.config/bat/config: --theme="Dracula"
undefinedundefinedLine Ranges
行范围
bash
undefinedbash
undefinedShow specific lines
显示指定行
bat -r 10:20 file.txt
bat -r 10:20 file.txt
From line to end
从指定行显示到文件末尾
bat -r 100: file.txt
bat -r 100: file.txt
Start to specific line
从文件开头显示到指定行
bat -r :50 file.txt
bat -r :50 file.txt
Multiple ranges
显示多个行范围
bat -r 1:10 -r 50:60 file.txt
undefinedbat -r 1:10 -r 50:60 file.txt
undefinedGit Integration
Git集成
bash
undefinedbash
undefinedShow Git modifications (added/removed/modified lines)
显示Git修改内容(新增/删除/修改的行)
bat --diff file.txt
bat --diff file.txt
Show decorations (Git + file header)
显示装饰信息(Git标识 + 文件头部)
bat --decorations=always file.txt
undefinedbat --decorations=always file.txt
undefinedOutput Control
输出控制
bash
undefinedbash
undefinedOutput raw (no styling)
输出原始内容(无样式)
bat --style=plain file.txt
bat --style=plain file.txt
Customize style
自定义输出样式
bat --style=numbers,changes file.txt
bat --style=numbers,changes file.txt
Available styles: auto, full, plain, changes, header, grid, numbers, snip
可用样式:auto, full, plain, changes, header, grid, numbers, snip
bat --style=header,grid,numbers file.txt
undefinedbat --style=header,grid,numbers file.txt
undefinedCommon Use Cases
常见使用场景
Quick file preview:
bash
bat file.jsonView logs with syntax highlighting:
bash
bat error.logCompare files visually:
bash
bat --diff file1.txt
bat file2.txtPreview before editing:
bash
bat config.yaml && vim config.yamlCat replacement in pipes:
bash
bat -p file.txt | grep "pattern"View specific function:
bash
bat -r 45:67 script.py # If function is on lines 45-67快速预览文件:
bash
bat file.json带语法高亮查看日志:
bash
bat error.log可视化对比文件:
bash
bat --diff file1.txt
bat file2.txt编辑前预览:
bash
bat config.yaml && vim config.yaml管道中的cat替代工具:
bash
bat -p file.txt | grep "pattern"查看指定函数:
bash
bat -r 45:67 script.py # 假设函数位于45-67行Integration with other tools
与其他工具集成
As pager for man pages:
bash
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
man grepWith ripgrep:
bash
rg "pattern" -l | xargs batWith fzf:
bash
fzf --preview 'bat --color=always --style=numbers {}'With diff:
bash
diff -u file1 file2 | bat -l diff作为man手册的分页器:
bash
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
man grep与ripgrep配合使用:
bash
rg "pattern" -l | xargs bat与fzf配合使用:
bash
fzf --preview 'bat --color=always --style=numbers {}'与diff配合使用:
bash
diff -u file1 file2 | bat -l diffConfiguration
配置
Create for defaults:
~/.config/bat/configundefined创建文件来设置默认参数:
~/.config/bat/configundefinedSet theme
设置主题
--theme="Dracula"
--theme="Dracula"
Show line numbers, Git modifications and file header, but no grid
显示行号、Git修改内容和文件头部,但不显示网格线
--style="numbers,changes,header"
--style="numbers,changes,header"
Use italic text on terminal
在终端中使用斜体文本
--italic-text=always
--italic-text=always
Add custom mapping
添加自定义语法映射
--map-syntax "*.conf:INI"
undefined--map-syntax "*.conf:INI"
undefinedPerformance Tips
性能优化技巧
- Use for plain mode when piping
-p - Use when output is used programmatically
--paging=never - caches parsed files for faster subsequent access
bat
- 管道传输时使用开启纯文本模式
-p - 当输出用于程序化处理时,使用
--paging=never - 会缓存已解析的文件,以加快后续访问速度
bat
Tips
实用小贴士
- Alias: for drop-in cat replacement
alias cat='bat -p' - Pager: Use as pager with
export PAGER="bat" - On Debian/Ubuntu: Command may be instead of
batcatbat - Custom syntaxes: Add to
~/.config/bat/syntaxes/ - Performance: For huge files, use or plain
bat --paging=nevercat
- 别名设置: 实现无缝替代cat
alias cat='bat -p' - 分页器设置: 通过将bat设为默认分页器
export PAGER="bat" - Debian/Ubuntu系统: 命令可能为而非
batcatbat - 自定义语法: 添加到目录
~/.config/bat/syntaxes/ - 性能提示: 对于超大文件,使用或原生
bat --paging=nevercat
Common flags
常用参数
- /
-p: Plain mode (no line numbers/decorations)--plain - /
-n: Only show line numbers--number - /
-A: Show non-printable characters--show-all - /
-l: Set language for syntax highlighting--language - /
-r: Only show specific line range(s)--line-range
- /
-p: 纯文本模式(无行号/装饰信息)--plain - /
-n: 仅显示行号--number - /
-A: 显示不可打印字符--show-all - /
-l: 设置语法高亮的语言--language - /
-r: 仅显示指定行范围--line-range
Documentation
文档
GitHub: https://github.com/sharkdp/bat
Man page:
Customization: https://github.com/sharkdp/bat#customization
man batGitHub: https://github.com/sharkdp/bat
手册页:
自定义配置: https://github.com/sharkdp/bat#customization
man bat