summaryrefslogtreecommitdiffstats
path: root/README.md
blob: 32e53cc56d30c3c729370b3f98fafd1f5263db6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# bat

[![Build Status](https://travis-ci.org/sharkdp/bat.svg?branch=master)](https://travis-ci.org/sharkdp/bat)
[![Version info](https://img.shields.io/crates/v/bat.svg)](https://crates.io/crates/bat)

*A cat(1) clone with syntax highlighting and Git integration.*

## Features

### Syntax highlighting

`bat` supports syntax highlighting for a large number of programming and markup languages:

![Syntax highlighting example](https://imgur.com/rGsdnDe.png)

### Git integration

`bat` communicates with `git` to show modifications with respect to the index (see left side bar):

![Git integration example](https://i.imgur.com/2lSW4RE.png)

## Installation

Check out the [Release page](https://github.com/sharkdp/bat/releases) for binary builds and Debian packages.

### From source

If you want to build to compile `bat` from source, you need Rust 1.22 or higher.
Make sure that you have the devel-version of libopenssl installed (see instructions
[here](https://github.com/sfackler/rust-openssl)). You can then use `cargo` to build everything:

``` bash
cargo install bat
```

## Customization

`bat` uses the excellent [`syntect`](https://github.com/trishume/syntect/) library for syntax highlighting. `syntect` can read any Sublime Text language definitions and highlighting theme.

To build your own syntax-set and theme, follow these steps:

Create a folder with syntax highlighting theme:
``` bash
mkdir -p ~/.config/bat/themes
cd ~/.config/bat/themes

# Download a theme, for example:
git clone https://github.com/jonschlinkert/sublime-monokai-extended

# Create a 'Default.tmTheme' link
ln -s "sublime-monokai-extended/Monokai Extended.tmTheme" Default.tmTheme
```

Create a folder with language definition files:
``` bash
mkdir -p ~/.config/bat/syntax
cd ~/.config/bat/syntax

# Download some language definition files, for example:
git clone https://github.com/sublimehq/Packages/
rm -rf Packages/Markdown
git clone https://github.com/jonschlinkert/sublime-markdown-extended
```

Finally, use the following command to parse all these files into a binary
cache:
``` bash
bat init-cache
```