mirror of
https://github.com/penpot/penpot.git
synced 2026-08-01 19:06:18 +00:00
Update agent configurations: change commiter mode to all, rename engineer agent to "Penpot Engineer", and remove obsolete testing agent. Add new read-only planner agent for architecture analysis and planning. Add four new skills: bat-cat (syntax-highlighted cat clone), fd-find (fast file finder), jq-json-processor (JSON processor), and ripgrep (fast text search). Add fd-find and bat packages to devenv Dockerfile. Update .gitignore to exclude opencode package-lock and plans directory. Signed-off-by: Andrey Antukh <niwi@niwi.nz>
211 lines
4.0 KiB
Markdown
211 lines
4.0 KiB
Markdown
---
|
|
name: bat-cat
|
|
description: A cat clone with syntax highlighting, line numbers, and Git integration - a modern replacement for cat.
|
|
homepage: https://github.com/sharkdp/bat
|
|
metadata: {"clawdbot":{"emoji":"🦇","requires":{"bins":["bat"]},"install":[{"id":"brew","kind":"brew","formula":"bat","bins":["bat"],"label":"Install bat (brew)"},{"id":"apt","kind":"apt","package":"bat","bins":["bat"],"label":"Install bat (apt)"}]}}
|
|
---
|
|
|
|
# bat - Better cat
|
|
|
|
`cat` with syntax highlighting, line numbers, and Git integration.
|
|
|
|
## Quick Start
|
|
|
|
### Basic usage
|
|
```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
|
|
```
|
|
|
|
### Viewing modes
|
|
```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
|
|
```
|
|
|
|
## Syntax Highlighting
|
|
|
|
### Language detection
|
|
```bash
|
|
# Auto-detect from extension
|
|
bat script.py
|
|
|
|
# Force specific language
|
|
bat -l javascript config.txt
|
|
|
|
# Show all languages
|
|
bat --list-languages
|
|
```
|
|
|
|
### Themes
|
|
```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"
|
|
```
|
|
|
|
## Line Ranges
|
|
|
|
```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 Integration
|
|
|
|
```bash
|
|
# Show Git modifications (added/removed/modified lines)
|
|
bat --diff file.txt
|
|
|
|
# Show decorations (Git + file header)
|
|
bat --decorations=always file.txt
|
|
```
|
|
|
|
## Output Control
|
|
|
|
```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
|
|
```
|
|
|
|
## Common Use Cases
|
|
|
|
**Quick file preview:**
|
|
```bash
|
|
bat file.json
|
|
```
|
|
|
|
**View logs with syntax highlighting:**
|
|
```bash
|
|
bat error.log
|
|
```
|
|
|
|
**Compare files visually:**
|
|
```bash
|
|
bat --diff file1.txt
|
|
bat file2.txt
|
|
```
|
|
|
|
**Preview before editing:**
|
|
```bash
|
|
bat config.yaml && vim config.yaml
|
|
```
|
|
|
|
**Cat 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
|
|
```
|
|
|
|
## Integration with other tools
|
|
|
|
**As pager for man pages:**
|
|
```bash
|
|
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
|
|
man grep
|
|
```
|
|
|
|
**With ripgrep:**
|
|
```bash
|
|
rg "pattern" -l | xargs bat
|
|
```
|
|
|
|
**With fzf:**
|
|
```bash
|
|
fzf --preview 'bat --color=always --style=numbers {}'
|
|
```
|
|
|
|
**With diff:**
|
|
```bash
|
|
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
|