# bat v0.25.0 - Product: bat (https://whatsnew.fyi/product/bat) - Vendor: David Peter - Date: 2025-01-07 - Version: v0.25.0 - Original notes: https://github.com/sharkdp/bat/releases/tag/v0.25.0 - Permalink: https://whatsnew.fyi/product/bat/releases/v0.25.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Set terminal title to file names when paging is not Paging::Never - **added** — Add `bat --squeeze-blank`/`bat -s` to squeeze consecutive empty lines - **added** — Add `bat --squeeze-limit` to set the maximum number of empty consecutive lines when using `--squeeze-blank` - **added** — Add `PrettyPrinter::squeeze_empty_lines` to support line squeezing for bat as a library - **added** — Add syntax highlighting for JavaScript files that start with `#!/usr/bin/env bun` - **added** — Add `bat --strip-ansi={never,always,auto}` to remove ANSI escape sequences from bat's input - **added** — Add ability to add or remove individual style components without replacing all styles - **added** — Automatically choose theme based on the terminal's color scheme - **added** — Add option `--binary=as-text` for printing binary content - **added** — Make shell completions available via `--completion ` - **added** — Add syntax highlighting for puppet code blocks within Markdown files - **added** — Add `theme::theme` for choosing an appropriate theme based on the terminal's color scheme - **fixed** — Fix long file name wrapping in header - **fixed** — Fix `NO_COLOR` support - **fixed** — Fix handling of inputs with OSC ANSI escape sequences - **fixed** — Fix handling of inputs with combined ANSI color and attribute sequences - **fixed** — Fix panel width when line 10000 wraps - **fixed** — Fix override behavior of --plain and --paging - **fixed** — Fix bugs in `$LESSOPEN` support - **changed** — Improve performance when color output disabled #### v0.25.0 ##### Features - Set terminal title to file names when Paging is not Paging::Never #2807 (@Oliver-Looney) - `bat --squeeze-blank`/`bat -s` will now squeeze consecutive empty lines, see #1441 (@eth-p) and #2665 (@einfachIrgendwer0815) - `bat --squeeze-limit` to set the maximum number of empty consecutive when using `--squeeze-blank`, see #1441 (@eth-p) and #2665 (@einfachIrgendwer0815) - `PrettyPrinter::squeeze_empty_lines` to support line squeezing for bat as a library, see #1441 (@eth-p) and #2665 (@einfachIrgendwer0815) - Syntax highlighting for JavaScript files that start with `#!/usr/bin/env bun` #2913 (@sharunkumar) - `bat --strip-ansi={never,always,auto}` to remove ANSI escape sequences from bat's input, see #2999 (@eth-p) - Add or remove individual style components without replacing all styles #2929 (@eth-p) - Automatically choose theme based on the terminal's color scheme, see #2896 (@bash) - Add option `--binary=as-text` for printing binary content, see issue #2974 and PR #2976 (@einfachIrgendwer0815) - Make shell completions available via `--completion `, see issue #2057 and PR #3126 (@einfachIrgendwer0815) - Syntax highlighting for puppet code blocks within Markdown files, see #3152 (@liliwilson) ##### Bugfixes - Fix long file name wrapping in header, see #2835 (@FilipRazek) - Fix `NO_COLOR` support, see #2767 (@acuteenvy) - Fix handling of inputs with OSC ANSI escape sequences, see #2541 and #2544 (@eth-p) - Fix handling of inputs with combined ANSI color and attribute sequences, see #2185 and #2856 (@eth-p) - Fix panel width when line 10000 wraps, see #2854 (@eth-p) - Fix compile issue of `time` dependency caused by standard library regression #3045 (@cyqsimon) - Fix override behavior of --plain and --paging, see issue #2731 and PR #3108 (@einfachIrgendwer0815) - Fix bugs in `$LESSOPEN` support, see #2805 (@Anomalocaridid) ##### Other - Upgrade to Rust 2021 edition #2748 (@cyqsimon) - Refactor and cleanup build script #2756 (@cyqsimon) - Checks changelog has been written to for PRs in CI #2766 (@cyqsimon) - Use GitHub API to get correct PR submitter #2791 (@cyqsimon) - Minor benchmark script improvements #2768 (@cyqsimon) - Update Arch Linux package URL in README files #2779 (@brunobell) - Update and improve `zsh` completion, see #2772 (@okapia) - More extensible syntax mapping mechanism #2755 (@cyqsimon) - Use proper Architecture for Debian packages built for musl, see #2811 (@Enselic) - Pull in fix for unsafe-libyaml security advisory, see #2812 (@dtolnay) - Update git-version dependency to use Syn v2, see #2816 (@dtolnay) - Update git2 dependency to v0.18.2, see #2852 (@eth-p) - Improve performance when color output disabled, see #2397 and #2857 (@eth-p) - Relax syntax mapping rule restrictions to allow brace expansion #2865 (@cyqsimon) - Apply clippy fixes #2864 (@cyqsimon) - Faster startup by offloading glob matcher building to a worker thread #2868 (@cyqsimon) - Display which theme is the default one in basic output (no colors), see #2937 (@sblondon) - Display which theme is the default one in colored output, see #2838 (@sblondon) - Add aarch64-apple-darwin ("Apple Silicon") binary tarballs to releases, see #2967 (@someposer) - Update the Lisp syntax, see #2970 (@ccqpein) - Use bat's ANSI iterator during tab expansion, see #2998 (@eth-p) - Support 'statically linked binary' for aarch64 in 'Release' page, see #2992 (@tzq0301) - Update options in shell completions and the man page of `bat`, see #2995 (@akinomyoga) - Update nix dev-dependency to v0.29.0, see #3112 (@decathorpe) - Bump MSRV to [1.74](https://blog.rust-lang.org/2023/11/16/Rust-1.74.0.html), see #3154 (@keith-hall) - Update clircle dependency to remove winapi transitive dependency, see #3113 (@niklasmohrin) ##### Syntaxes - `cmd-help`: scope subcommands followed by other terms, and other misc improvements, see #2819 (@victor-gp) - Upgrade JQ syntax, see #2820 _[Truncated at 4000 characters — full notes: https://github.com/sharkdp/bat/releases/tag/v0.25.0]_