Agent Skillspenpot/penpot › bat-cat

bat-cat

GitHub

bat是cat的增强版,提供语法高亮、行号显示和Git集成。用于终端文件预览、代码查看及日志分析,支持自定义主题、范围选择和与其他工具(如fzf、rg)集成,提升命令行体验。

.opencode/skills/bat-cat/SKILL.md penpot/penpot

触发场景

需要以语法高亮方式查看源代码或配置文件 希望在终端中查看文件时包含行号和Git变更状态 需要将cat替换为更友好的文件浏览工具

安装

npx skills add penpot/penpot --skill bat-cat -g -y
更多选项

非标准路径

npx skills add https://github.com/penpot/penpot/tree/develop/.opencode/skills/bat-cat -g -y

不安装直接使用

npx skills use penpot/penpot@bat-cat

指定 Agent (Claude Code)

npx skills add penpot/penpot --skill bat-cat -a claude-code -g -y

安装 repo 全部 skill

npx skills add penpot/penpot --all -g -y

预览 repo 内 skill

npx skills add penpot/penpot --list

SKILL.md

Frontmatter
{
    "name": "bat-cat",
    "homepage": "https:\/\/github.com\/sharkdp\/bat",
    "metadata": {
        "clawdbot": {
            "emoji": "🦇",
            "install": [
                {
                    "id": "brew",
                    "bins": [
                        "bat"
                    ],
                    "kind": "brew",
                    "label": "Install bat (brew)",
                    "formula": "bat"
                },
                {
                    "id": "apt",
                    "bins": [
                        "bat"
                    ],
                    "kind": "apt",
                    "label": "Install bat (apt)",
                    "package": "bat"
                }
            ],
            "requires": {
                "bins": [
                    "bat"
                ]
            }
        }
    },
    "description": "A cat clone with syntax highlighting, line numbers, and Git integration - a modern replacement for cat."
}

bat - Better cat

cat with syntax highlighting, line numbers, and Git integration.

Quick Start

Basic usage

# 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

Viewing modes

# 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

Syntax Highlighting

Language detection

# Auto-detect from extension
bat script.py

# Force specific language
bat -l javascript config.txt

# Show all languages
bat --list-languages

Themes

# 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"

Line Ranges

# 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 Integration

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

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

Output Control

# 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

Common Use Cases

Quick file preview:

bat file.json

View logs with syntax highlighting:

bat error.log

Compare files visually:

bat --diff file1.txt
bat file2.txt

Preview before editing:

bat config.yaml && vim config.yaml

Cat replacement in pipes:

bat -p file.txt | grep "pattern"

View specific function:

bat -r 45:67 script.py  # If function is on lines 45-67

Integration with other tools

As pager for man pages:

export MANPAGER="sh -c 'col -bx | bat -l man -p'"
man grep

With ripgrep:

rg "pattern" -l | xargs bat

With fzf:

fzf --preview 'bat --color=always --style=numbers {}'

With diff:

diff -u file1 file2 | bat -l diff

Configuration

Create ~/.config/bat/config for defaults:

# 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"

Performance Tips

  • Use -p for plain mode when piping
  • Use --paging=never when output is used programmatically
  • bat caches parsed files for faster subsequent access

Tips

  • Alias: alias cat='bat -p' for drop-in cat replacement
  • Pager: Use as pager with export PAGER="bat"
  • On Debian/Ubuntu: Command may be batcat instead of bat
  • Custom syntaxes: Add to ~/.config/bat/syntaxes/
  • Performance: For huge files, use bat --paging=never or plain cat

Common flags

  • -p / --plain: Plain mode (no line numbers/decorations)
  • -n / --number: Only show line numbers
  • -A / --show-all: Show non-printable characters
  • -l / --language: Set language for syntax highlighting
  • -r / --line-range: Only show specific line range(s)

Documentation

GitHub: https://github.com/sharkdp/bat Man page: man bat Customization: https://github.com/sharkdp/bat#customization

版本历史

  • 2dcf1a8 当前 2026-08-20 19:19

同 Skill 集合

.opencode/skills/code-review-and-quality/SKILL.md
.opencode/skills/code-review/SKILL.md
.opencode/skills/create-commit/SKILL.md
.opencode/skills/create-issue/SKILL.md
.opencode/skills/create-pr/SKILL.md
.opencode/skills/fd-find/SKILL.md
.opencode/skills/jq-json-processor/SKILL.md
.opencode/skills/nrepl-eval/SKILL.md
.opencode/skills/plan-review/SKILL.md
.opencode/skills/planner/SKILL.md
.opencode/skills/refine-prompt/SKILL.md
.opencode/skills/ripgrep/SKILL.md
.opencode/skills/security-and-hardening/SKILL.md
.opencode/skills/taiga/SKILL.md
.opencode/skills/testing/SKILL.md
.opencode/skills/update-changelog/SKILL.md
.opencode/skills/ste/SKILL.md

元信息

文件数
0
版本
2ce202c
Hash
3ac2879a
收录时间
2026-08-20 19:19

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-16 20:13
浙ICP备14020137号-1