README.md 2.04 KB
Newer Older
1
2
3
4
# colorize

With this plugin you can syntax-highlight file contents of over 300 supported languages and other text formats.

5
6
7
8
Colorize will highlight the content based on the filename extension. If it can't find a syntax-highlighting
method for a given extension, it will try to find one by looking at the file contents. If no highlight method
is found it will just cat the file normally, without syntax highlighting.

Robby Russell's avatar
Robby Russell committed
9
10
## Setup

11
To use it, add colorize to the plugins array of your `~/.zshrc` file:
12
13
14
15
```
plugins=(... colorize)
```

Aaron N. Brock's avatar
Aaron N. Brock committed
16
## Configuration
17

Robby Russell's avatar
Robby Russell committed
18
19
### Requirements

20
21
22
23
24
This plugin requires that either of the following tools be installed:

* Chroma: [https://github.com/alecthomas/chroma](https://github.com/alecthomas/chroma)
* Pygments be installed: [pygments.org](https://pygments.org/)

Aaron N. Brock's avatar
Aaron N. Brock committed
25
### Colorize tool
Robby Russell's avatar
Robby Russell committed
26

27
Colorize supports `pygmentize` and `chroma` as syntax highlighter. By default colorize uses `pygmentize` unless it's not installed and `chroma` is. This can be overridden by the `ZSH_COLORIZE_TOOL` environment variable:
Aaron N. Brock's avatar
Aaron N. Brock committed
28
29
30
31
32
33

```
ZSH_COLORIZE_TOOL=chroma
```

### Styles
34
35
36

Pygments offers multiple styles. By default, the `default` style is used, but you can choose another theme by setting the `ZSH_COLORIZE_STYLE` environment variable:

Aaron N. Brock's avatar
Aaron N. Brock committed
37
38
39
```
ZSH_COLORIZE_STYLE="colorful"
```
40

41
42
## Usage

43
* `ccat <file> [files]`: colorize the contents of the file (or files, if more than one are provided).
44
45
46
47
  If no arguments are passed it will colorize the standard input or stdin.

* `cless <file> [files]`: colorize the contents of the file (or files, if more than one are provided) and
  open less. If no arguments are passed it will colorize the standard input or stdin.
48

49
50
51
52
Note that `cless` will behave as less when provided more than one file: you have to navigate files with
the commands `:n` for next and `:p` for previous. The downside is that less options are not supported.
But you can circumvent this by either using the LESS environment variable, or by running `ccat file1 file2|less --opts`.
In the latter form, the file contents will be concatenated and presented by less as a single file.