manpagez: man pages & more
man bat(1)
Home | html | info | man
bat(1)                                                                  bat(1)




NAME

       bat - a cat(1) clone with syntax highlighting and Git integration.


USAGE

       bat [OPTIONS] [FILE]...

       bat cache [CACHE-OPTIONS] [--build|--clear]


DESCRIPTION

       bat  prints  the syntax-highlighted content of a collection of FILEs to
       the terminal. If no FILE is specified, or when FILE is  '-',  it  reads
       from standard input.

       bat  supports  a  large number of programming and markup languages.  It
       also communicates with git(1) to show modifications with respect to the
       git  index.   bat  automatically  pipes  its output through a pager (by
       default: less).

       Whenever the output of bat goes to  a  non-interactive  terminal,  i.e.
       when  the output is piped into another process or into a file, bat will
       act as a drop-in replacement for cat(1) and fall back to  printing  the
       plain file contents.



OPTIONS

       General  remarks: Command-line options like '-l'/'--language' that take
       values  can  be  specified  as  either  '--language   value',   '--lan-
       guage=value', '-l value' or '-lvalue'.

       -A, --show-all

              Show  non-printable  characters  like space, tab or newline. Use
              '--tabs' to control the width of the tab-placeholders.

       -p, --plain

              Only show plain style, no decorations.  This  is  an  alias  for
              '--style=plain'.  When  '-p' is used twice ('-pp'), it also dis-
              ables    automatic    paging    (alias    for     '--style=plain
              --pager=never').

       -l, --language <language>

              Explicitly  set  the  language for syntax highlighting. The lan-
              guage can be specified as a name (like 'C++' or 'LaTeX') or pos-
              sible   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  detec-
              tion.

       -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.

       --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.  Possible
              values: *auto*, never, always.

       --italic-text <when>

              Specify  when  to use ANSI sequences for italic text in the out-
              put. 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 '--pag-
              ing=never' or its alias, -P. To disable the  pager  permanently,
              set  BAT_PAGER  to  an  empty  string. To control which pager is
              used, see the '--pager' option. Possible values: *auto*,  never,
              always.

       --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"'.

              Note: By default, if the pager is set to 'less' (and no command-
              line  options are specified), 'bat' will pass the following com-
              mand line  options  to  the  pager:  '-R'/'--RAW-CONTROL-CHARS',
              '-F'/'--quit-if-one-screen'   and   '-X'/'--no-init'.  The  last
              option ('-X') is only used for 'less' versions older  than  530.
              The  '-R'  option  is needed to interpret ANSI colors correctly.
              The second option ('-F') instructs less to exit  immediately  if
              the  output size is smaller than the vertical size of the termi-
              nal. This is convenient for small files because you do not  have
              to  press  'q'  to  quit  the  pager. The third option ('-X') is
              needed to fix a bug with the '--quit-if-one-screen'  feature  in
              old  versions  of  'less'.  Unfortunately, it also breaks mouse-
              wheel support in 'less'.  If  you  want  to  enable  mouse-wheel
              scrolling  on  older  versions of 'less', you can pass just '-R'
              (as in the example above, this  will  disable  the  quit-if-one-
              screen  feature).  For  less 530 or newer, it should work out of
              the box.

       -m, --map-syntax <glob-pattern:syntax-name>...

              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 exten-
              sion.

       --theme <theme>

              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="...").

       --list-themes

              Display a list of supported themes for syntax highlighting.

       --style <style-components>

              Configure  which elements (line numbers, file headers, grid bor-
              ders, 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="..").  Possible  values:
              *default*, full, auto, plain, changes, header,  header-filename,
              header-filesize, grid, rule, numbers, snip.

       -r, --line-range <N:M>...

              Only print the specified range of lines for each file. For exam-
              ple:

              --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 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.

       -h, --help

              Print this help message.

       -V, --version

              Show version information.


POSITIONAL ARGUMENTS

       <FILE>...

              Files to print and concatenate. Use a dash ('-') or no  argument
              at all to read from standard input.


SUBCOMMANDS

       cache - Modify the syntax-definition and theme cache.


FILES

       bat  can  also be customized with a configuration file. The location of
       the file is dependent on your operating system. To get the default path
       for your system, call:

       bat --config-file

       Alternatively,  you can use the BAT_CONFIG_PATH environment variable to
       point bat to a non-default location of the configuration file.

       To generate a default configuration file, call:

       bat --generate-config-file


ADDING CUSTOM LANGUAGES

       bat supports Sublime Text .sublime-syntax language files,  and  can  be
       customized  to  add additional languages to your local installation. To
       do this, add the .sublime-syntax language  files  to  `$(bat  --config-
       dir)/syntaxes` and run `bat cache --build`.

       Example:

            mkdir -p "$(bat --config-dir)/syntaxes"
            cd "$(bat --config-dir)/syntaxes"

            # Put new '.sublime-syntax' language definition files
            # in this folder (or its subdirectories), for example:
            git clone https://github.com/tellnobody1/sublime-purescript-syntax

            # And then build the cache.
            bat cache --build

       Once the cache is built, the new  language  will  be  visible  in  `bat
       --list-languages`.
       If  you  ever  want  to  remove the custom languages, you can clear the
       cache with `bat cache --clear`.



ADDING CUSTOM THEMES

       Similarly to custom  languages,  bat  supports  Sublime  Text  .tmTheme
       themes.   These  can  be installed to `$(bat --config-dir)/themes`, and
       are added to the cache with `bat cache --build`.


MORE INFORMATION

       For more information and up-to-date documentation, visit the bat repo:
       https://github.com/sharkdp/bat



                                                                        bat(1)

bat 0.21.0 - Generated Fri May 13 08:36:42 CDT 2022
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.