2022-12-30 09:16:07 +01:00
|
|
|
A cat(1) clone with syntax highlighting and Git integration.
|
|
|
|
|
|
|
|
Usage: bat [OPTIONS] [FILE]...
|
|
|
|
bat <COMMAND>
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
[FILE]...
|
|
|
|
File(s) to print / concatenate. Use a dash ('-') or no argument at all to read from
|
|
|
|
standard input.
|
|
|
|
|
|
|
|
Options:
|
|
|
|
-A, --show-all
|
|
|
|
Show non-printable characters like space, tab or newline. This option can also be used to
|
|
|
|
print binary files. Use '--tabs' to control the width of the tab-placeholders.
|
|
|
|
|
2023-03-14 22:21:30 +01:00
|
|
|
--nonprintable-notation <notation>
|
|
|
|
Set notation for non-printable characters.
|
|
|
|
|
|
|
|
Possible values:
|
|
|
|
* unicode (␇, ␊, ␀, ..)
|
|
|
|
* caret (^G, ^J, ^@, ..)
|
|
|
|
|
2024-05-31 18:20:16 +02:00
|
|
|
--binary <behavior>
|
|
|
|
How to treat binary content. (default: no-printing)
|
|
|
|
|
|
|
|
Possible values:
|
|
|
|
* no-printing: do not print any binary content
|
|
|
|
* as-text: treat binary content as normal text
|
|
|
|
|
2022-12-30 09:16:07 +01:00
|
|
|
-p, --plain...
|
|
|
|
Only show plain style, no decorations. This is an alias for '--style=plain'. When '-p' is
|
|
|
|
used twice ('-pp'), it also disables automatic paging (alias for '--style=plain
|
|
|
|
--paging=never').
|
|
|
|
|
|
|
|
-l, --language <language>
|
|
|
|
Explicitly set the language for syntax highlighting. The language can be specified as a
|
|
|
|
name (like 'C++' or 'LaTeX') or possible file extension (like 'cpp', 'hpp' or 'md'). Use
|
|
|
|
'--list-languages' to show all supported language names and file extensions.
|
|
|
|
|
|
|
|
-H, --highlight-line <N:M>
|
|
|
|
Highlight the specified line ranges with a different background color For example:
|
|
|
|
'--highlight-line 40' highlights line 40
|
|
|
|
'--highlight-line 30:40' highlights lines 30 to 40
|
|
|
|
'--highlight-line :40' highlights lines 1 to 40
|
|
|
|
'--highlight-line 40:' highlights lines 40 to the end of the file
|
|
|
|
'--highlight-line 30:+10' highlights lines 30 to 40
|
|
|
|
|
|
|
|
--file-name <name>
|
|
|
|
Specify the name to display for a file. Useful when piping data to bat from STDIN when bat
|
|
|
|
does not otherwise know the filename. Note that the provided file name is also used for
|
|
|
|
syntax detection.
|
|
|
|
|
|
|
|
-d, --diff
|
|
|
|
Only show lines that have been added/removed/modified with respect to the Git index. Use
|
|
|
|
--diff-context=N to control how much context you want to see.
|
|
|
|
|
|
|
|
--diff-context <N>
|
|
|
|
Include N lines of context around added/removed/modified lines when using '--diff'.
|
|
|
|
|
|
|
|
--tabs <T>
|
|
|
|
Set the tab width to T spaces. Use a width of 0 to pass tabs through directly
|
|
|
|
|
|
|
|
--wrap <mode>
|
|
|
|
Specify the text-wrapping mode (*auto*, never, character). The '--terminal-width' option
|
|
|
|
can be used in addition to control the output width.
|
|
|
|
|
|
|
|
-S, --chop-long-lines
|
|
|
|
Truncate all lines longer than screen width. Alias for '--wrap=never'.
|
|
|
|
|
|
|
|
--terminal-width <width>
|
|
|
|
Explicitly set the width of the terminal instead of determining it automatically. If
|
|
|
|
prefixed with '+' or '-', the value will be treated as an offset to the actual terminal
|
|
|
|
width. See also: '--wrap'.
|
|
|
|
|
|
|
|
-n, --number
|
|
|
|
Only show line numbers, no other decorations. This is an alias for '--style=numbers'
|
|
|
|
|
|
|
|
--color <when>
|
|
|
|
Specify when to use colored output. The automatic mode only enables colors if an
|
|
|
|
interactive terminal is detected - colors are automatically disabled if the output goes to
|
|
|
|
a pipe.
|
|
|
|
Possible values: *auto*, never, always.
|
|
|
|
|
|
|
|
--italic-text <when>
|
|
|
|
Specify when to use ANSI sequences for italic text in the output. Possible values: always,
|
|
|
|
*never*.
|
|
|
|
|
|
|
|
--decorations <when>
|
|
|
|
Specify when to use the decorations that have been specified via '--style'. The automatic
|
|
|
|
mode only enables decorations if an interactive terminal is detected. Possible values:
|
|
|
|
*auto*, never, always.
|
|
|
|
|
|
|
|
-f, --force-colorization
|
|
|
|
Alias for '--decorations=always --color=always'. This is useful if the output of bat is
|
|
|
|
piped to another program, but you want to keep the colorization/decorations.
|
|
|
|
|
|
|
|
--paging <when>
|
|
|
|
Specify when to use the pager. To disable the pager, use --paging=never' or its
|
2023-08-05 21:18:38 +02:00
|
|
|
alias,'-P'. To disable the pager permanently, set BAT_PAGING to 'never'. To control which
|
|
|
|
pager is used, see the '--pager' option. Possible values: *auto*, never, always.
|
2022-12-30 09:16:07 +01:00
|
|
|
|
|
|
|
--pager <command>
|
|
|
|
Determine which pager is used. This option will override the PAGER and BAT_PAGER
|
|
|
|
environment variables. The default pager is 'less'. To control when the pager is used, see
|
|
|
|
the '--paging' option. Example: '--pager "less -RF"'.
|
|
|
|
|
|
|
|
-m, --map-syntax <glob:syntax>
|
|
|
|
Map a glob pattern to an existing syntax name. The glob pattern is matched on the full
|
|
|
|
path and the filename. For example, to highlight *.build files with the Python syntax, use
|
|
|
|
-m '*.build:Python'. To highlight files named '.myignore' with the Git Ignore syntax, use
|
|
|
|
-m '.myignore:Git Ignore'. Note that the right-hand side is the *name* of the syntax, not
|
|
|
|
a file extension.
|
|
|
|
|
|
|
|
--ignored-suffix <ignored-suffix>
|
|
|
|
Ignore extension. For example:
|
|
|
|
'bat --ignored-suffix ".dev" my_file.json.dev' will use JSON syntax, and ignore '.dev'
|
|
|
|
|
|
|
|
--theme <theme>
|
2024-08-18 20:32:23 +02:00
|
|
|
Set the theme for syntax highlighting. Use '--list-themes' to see all available themes. To
|
|
|
|
set a default theme, add the '--theme="..."' option to the configuration file or export
|
|
|
|
the BAT_THEME environment variable (e.g.: export BAT_THEME="...").
|
|
|
|
|
|
|
|
Special values:
|
|
|
|
|
|
|
|
* auto: Picks a dark or light theme depending on the terminal's colors (default).
|
|
|
|
Use '--theme-light' and '--theme-dark' to customize the selected theme.
|
|
|
|
* auto:always: Detect the terminal's colors even when the output is redirected.
|
|
|
|
* auto:system: Detect the color scheme from the system-wide preference (macOS only).
|
|
|
|
* dark: Use the dark theme specified by '--theme-dark'.
|
|
|
|
* light: Use the light theme specified by '--theme-light'.
|
2024-07-18 15:38:28 +02:00
|
|
|
|
|
|
|
--theme-light <theme>
|
|
|
|
Sets the theme name for syntax highlighting used when the terminal uses a light
|
|
|
|
background. Use '--list-themes' to see all available themes. To set a default theme, add
|
|
|
|
the '--theme-light="..." option to the configuration file or export the BAT_THEME_LIGHT
|
|
|
|
environment variable (e.g. export BAT_THEME_LIGHT="...").
|
|
|
|
|
|
|
|
--theme-dark <theme>
|
|
|
|
Sets the theme name for syntax highlighting used when the terminal uses a dark background.
|
|
|
|
Use '--list-themes' to see all available themes. To set a default theme, add the
|
|
|
|
'--theme-dark="..." option to the configuration file or export the BAT_THEME_DARK
|
|
|
|
environment variable (e.g. export BAT_THEME_DARK="...").
|
2022-12-30 09:16:07 +01:00
|
|
|
|
|
|
|
--list-themes
|
|
|
|
Display a list of supported themes for syntax highlighting.
|
|
|
|
|
2024-02-24 14:02:27 +01:00
|
|
|
-s, --squeeze-blank
|
2023-09-10 13:38:26 +02:00
|
|
|
Squeeze consecutive empty lines into a single empty line.
|
|
|
|
|
|
|
|
--squeeze-limit <squeeze-limit>
|
|
|
|
Set the maximum number of consecutive empty lines to be printed.
|
|
|
|
|
2024-06-11 06:05:20 +02:00
|
|
|
--strip-ansi <when>
|
2024-06-11 06:17:28 +02:00
|
|
|
Specify when to strip ANSI escape sequences from the input. The automatic mode will remove
|
|
|
|
escape sequences unless the syntax highlighting language is plain text. Possible values:
|
|
|
|
auto, always, *never*.
|
2024-06-11 06:05:20 +02:00
|
|
|
|
2022-12-30 09:16:07 +01:00
|
|
|
--style <components>
|
|
|
|
Configure which elements (line numbers, file headers, grid borders, Git modifications, ..)
|
|
|
|
to display in addition to the file contents. The argument is a comma-separated list of
|
|
|
|
components to display (e.g. 'numbers,changes,grid') or a pre-defined style ('full'). To
|
|
|
|
set a default style, add the '--style=".."' option to the configuration file or export the
|
|
|
|
BAT_STYLE environment variable (e.g.: export BAT_STYLE="..").
|
|
|
|
|
2024-04-07 00:04:20 +02:00
|
|
|
When styles are specified in multiple places, the "nearest" set of styles take precedence.
|
|
|
|
The command-line arguments are the highest priority, followed by the BAT_STYLE environment
|
|
|
|
variable, and then the configuration file. If any set of styles consists entirely of
|
|
|
|
components prefixed with "+" or "-", it will modify the previous set of styles instead of
|
|
|
|
replacing them.
|
|
|
|
|
2024-02-03 22:51:02 +01:00
|
|
|
By default, the following components are enabled:
|
|
|
|
changes, grid, header-filename, numbers, snip
|
|
|
|
|
2022-12-30 09:16:07 +01:00
|
|
|
Possible values:
|
|
|
|
|
|
|
|
* default: enables recommended style components (default).
|
|
|
|
* full: enables all available components.
|
|
|
|
* auto: same as 'default', unless the output is piped.
|
|
|
|
* plain: disables all available components.
|
|
|
|
* changes: show Git modification markers.
|
|
|
|
* header: alias for 'header-filename'.
|
|
|
|
* header-filename: show filenames before the content.
|
|
|
|
* header-filesize: show file sizes before the content.
|
|
|
|
* grid: vertical/horizontal lines to separate side bar
|
|
|
|
and the header from the content.
|
|
|
|
* rule: horizontal lines to delimit files.
|
|
|
|
* numbers: show line numbers in the side bar.
|
|
|
|
* snip: draw separation lines between distinct line ranges.
|
|
|
|
|
|
|
|
-r, --line-range <N:M>
|
|
|
|
Only print the specified range of lines for each file. For example:
|
|
|
|
'--line-range 30:40' prints lines 30 to 40
|
|
|
|
'--line-range :40' prints lines 1 to 40
|
|
|
|
'--line-range 40:' prints lines 40 to the end of the file
|
|
|
|
'--line-range 40' only prints line 40
|
|
|
|
'--line-range 30:+10' prints lines 30 to 40
|
|
|
|
|
|
|
|
-L, --list-languages
|
|
|
|
Display a list of supported languages for syntax highlighting.
|
|
|
|
|
|
|
|
-u, --unbuffered
|
|
|
|
This option exists for POSIX-compliance reasons ('u' is for 'unbuffered'). The output is
|
|
|
|
always unbuffered - this option is simply ignored.
|
|
|
|
|
|
|
|
--diagnostic
|
|
|
|
Show diagnostic information for bug reports.
|
|
|
|
|
|
|
|
--acknowledgements
|
|
|
|
Show acknowledgements.
|
|
|
|
|
2024-02-08 22:33:03 +01:00
|
|
|
--set-terminal-title
|
2024-01-29 10:47:41 +01:00
|
|
|
Sets terminal title to filenames when using a pager.
|
|
|
|
|
2022-12-30 09:16:07 +01:00
|
|
|
-h, --help
|
2023-03-15 07:42:01 +01:00
|
|
|
Print help (see a summary with '-h')
|
2022-12-30 09:16:07 +01:00
|
|
|
|
|
|
|
-V, --version
|
2023-03-15 07:42:01 +01:00
|
|
|
Print version
|