Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BAT(1)			    General Commands Manual			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  de-
       fault: 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 re-
	      spect 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 en-
	      ables 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 in-
	      teractive	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 op-
	      tion ('-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  terminal.
	      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 ver-
	      sions  of	'less'.	Unfortunately, it also breaks mouse-wheel sup-
	      port in 'less'. If you want to enable mouse-wheel	 scrolling  on
	      older  versions of 'less', you can pass just '-R'	(as in the ex-
	      ample 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: *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 'un-
	      buffered').  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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bat&sektion=1&manpath=FreeBSD+13.1-RELEASE+and+Ports>

home | help