ClawSkills logoClawSkills

Bat Cat

一个具有语法高亮、行号和 Git 集成的 cat 克隆版——cat 的现代替代品。

介绍

# bat - Better cat

带有语法高亮、行号和 Git 集成的 `cat`。

## 快速开始

### 基本用法 ```bash # View file with syntax highlighting bat README.md

# Multiple files bat file1.js file2.py

# With line numbers (default) bat script.sh

# Without line numbers bat -p script.sh ```

### 查看模式 ```bash # Plain mode (like cat) bat -p file.txt

# Show non-printable characters bat -A file.txt

# Squeeze blank lines bat -s file.txt

# Paging (auto for large files) bat --paging=always file.txt bat --paging=never file.txt ```

## 语法高亮

### 语言检测 ```bash # Auto-detect from extension bat script.py

# Force specific language bat -l javascript config.txt

# Show all languages bat --list-languages ```

### 主题 ```bash # List available themes bat --list-themes

# Use specific theme bat --theme="Monokai Extended" file.py

# Set default theme in config # ~/.config/bat/config: --theme="Dracula" ```

## 行范围

```bash # Show specific lines bat -r 10:20 file.txt

# From line to end bat -r 100: file.txt

# Start to specific line bat -r :50 file.txt

# Multiple ranges bat -r 1:10 -r 50:60 file.txt ```

## Git 集成

```bash # Show Git modifications (added/removed/modified lines) bat --diff file.txt

# Show decorations (Git + file header) bat --decorations=always file.txt ```

## 输出控制

```bash # Output raw (no styling) bat --style=plain file.txt

# Customize style bat --style=numbers,changes file.txt

# Available styles: auto, full, plain, changes, header, grid, numbers, snip bat --style=header,grid,numbers file.txt ```

## 常见用例

**快速文件预览:** ```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 # If function is on lines 45-67 ```

## 与其他工具集成

**作为 man page 的分页器:** ```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 diff ```

## 配置

创建 `~/.config/bat/config` 以设置默认值:

``` # Set theme --theme="Dracula"

# Show line numbers, Git modifications and file header, but no grid --style="numbers,changes,header"

# Use italic text on terminal --italic-text=always

# Add custom mapping --map-syntax "*.conf:INI" ```

## 性能技巧

- 在管道传输时使用 `-p` 进入纯文本模式 - 当输出被程序化使用时,使用 `--paging=never` - `bat` 会缓存已解析的文件以加快后续访问速度

## 提示

- **别名:** 使用 `alias cat='bat -p'` 作为可直接替换的 cat 命令 - **分页器:** 通过 `export PAGER="bat"` 将其用作分页器 - **在 Debian/Ubuntu 上:** 命令可能是 `batcat` 而不是 `bat` - **自定义语法:** 添加到 `~/.config/bat/syntaxes/` - **性能:** 对于超大文件,请使用 `bat --paging=never` 或直接使用 `cat`

## 常用标志

- `-p` / `--plain`: 纯文本模式(无行号/装饰) - `-n` / `--number`: 仅显示行号 - `-A` / `--show-all`: 显示不可打印字符 - `-l` / `--language`: 设置语法高亮语言 - `-r` / `--line-range`: 仅显示特定的行范围

## 文档

GitHub: https://github.com/sharkdp/bat Man page: `man bat` 自定义: https://github.com/sharkdp/bat#customization

更多产品