Když si soubor vypíšu přes cat, dostanu holý text. Bez barev, bez čísel řádků, bez orientace. bat (jako netopýr 🦇) přidává všechno, co bys od moderního nástroje čekal – a stále se chová jako cat, když ho pipuješ dál.
Instalace
sudo pacman -S bat
Balíček je v oficiálním repu. Pro plnou funkčnost (git integrace, stránkování) je dobré mít i less a git, což na Archu máš.
Základní použití
# jednoduchý výpis
bat soubor.md
# bez čísel řádků
bat -n soubor.md
# bez stránkování (jako cat)
bat --paging=never soubor.md
# jen konkrétní řádky
bat -r 10:20 soubor.py
# více souborů najednou
bat *.md
Co bat umí navíc oproti cat
Zvýraznění syntaxe pro víc než 150 jazyků – bash, python, yaml, JSON, markdown, Rust, Go, TOML, INI, systemd unit files a spousta dalších. Autodetekce podle přípony.
Čísla řádků vlevo, s barevnou hranicí sekcí.
Git integrace. Vedle čísla řádku vidíš + (přidaný), ~ (změněný), - (smazaný) oproti HEAD. Rychlý přehled bez git diff.
Automatické stránkování. Když je soubor delší než terminál, bat ho pošle do less. Krátký výpis se rovnou vypíše.
Detekce non-textových souborů. Když omylem cat-uješ binárku, bat tě upozorní místo toho, aby ti rozházel terminál.
Chování v pipe
Klíčové: když bat pipuješ dál, chová se jako cat – jen holý text, žádné barvy, žádné čísla.
bat data.json | jq .
cat data.json | jq . # totéž
Tohle je důvod, proč můžeš cat nahradit aliasem bez obav, že rozbije skripty.
Aliasy
Do ~/.zshrc:
alias cat='bat --paging=never'
alias catp='bat' # cat s pagingem, když ho chceš
Když opravdu potřebuješ původní cat (třeba pro rychlé pipe operace):
\cat soubor.txt
Praktické triky
Použij bat jako pager pro man:
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
export MANROFFOPT="-c"
Manuálové stránky teď dostanou zvýrazněnou syntax.
Kombinace s find / fd a fzf:
fzf --preview 'bat --color=always {}'
Máš okamžitý náhled souboru při procházení.
Diff přes bat:
diff soubor1 soubor2 | bat -l diff
git diff | bat -l diff --paging=never
Nebo nainstaluj rovnou git-delta, který používá bat pod kapotou.
Zvýraznění pro nestandardní přípony:
bat -l ini /etc/pacman.conf
bat -l bash /etc/profile
Výpis všech podporovaných jazyků:
bat --list-languages
Konfigurace
Vytvoř config:
mkdir -p ~/.config/bat
bat --generate-config-file
Otevře se ~/.config/bat/config s příklady. Typická konfigurace:
--theme="Catppuccin Mocha"
--style="numbers,changes,header"
--paging=auto
--italic-text=always
Dostupná témata:
bat --list-themes
Vlastní téma můžeš přidat do ~/.config/bat/themes/ a pak spustit:
bat cache --build
Souborové operace navíc
Sjednotit více souborů (jako cat file1 file2 > out):
bat -pp file1.md file2.md > combined.md
-pp = plain plain = žádné dekorace, jen text.
Vytisknout s hlavičkou souboru:
bat --style="header,numbers" *.md
Kdy se vrátit k cat?
Ve skriptech – i když bat v pipe funguje jako cat, přidává zbytečnou závislost. Když píšeš skript, který má běžet i na jiných strojích, použij cat.
Ve výkonově kritických operacích – bat má o něco víc overheadu při inicializaci. Když děláš velké dávkové operace, cat bude rychlejší.
Shrnutí
bat je pravděpodobně nejjednodušší upgrade, který můžeš svému terminálu udělat. Pár set kilobajtů, jeden alias, a najednou vidíš struktury v každém konfiguráku.
Příště se podíváme na fd – rychlejší, jednodušší a přátelštější náhradu za find.

Komentáře