2020-12-17 02:23:25 +03:00
< p align = "center" >
2022-01-04 04:16:29 +03:00
< img width = 400px src = "https://user-images.githubusercontent.com/52205/147996902-9829bd3f-cd33-466e-833e-49a6f3ebd623.png" alt = "image" / >
2020-12-17 02:23:25 +03:00
< / p >
< p align = "center" >
< a href = "https://github.com/dandavison/delta/actions" >
< img src = "https://github.com/dandavison/delta/workflows/Continuous%20Integration/badge.svg" alt = "CI" >
< / a >
2023-11-21 21:19:59 +03:00
< a href = "https://coveralls.io/github/dandavison/delta?branch=main" >
< img src = "https://coveralls.io/repos/github/dandavison/delta/badge.svg?branch=main" alt = "Coverage Status" >
2020-12-17 02:23:25 +03:00
< / a >
< a href = "https://gitter.im/dandavison-delta/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge" >
< img src = "https://badges.gitter.im/dandavison-delta/community.svg" alt = "Gitter" >
< / a >
< / p >
2019-07-14 23:33:25 +03:00
2021-09-27 23:26:57 +03:00
## Get Started
2022-05-02 15:51:04 +03:00
[Install it ](https://dandavison.github.io/delta/installation.html ) (the package is called "git-delta" in most package managers, but the executable is just `delta` ) and add this to your `~/.gitconfig` :
2021-09-27 23:26:57 +03:00
```gitconfig
2021-11-25 01:53:22 +03:00
[core]
pager = delta
2021-09-27 23:26:57 +03:00
[interactive]
2021-11-02 01:09:33 +03:00
diffFilter = delta --color-only
2021-11-30 17:39:59 +03:00
2021-12-05 00:42:43 +03:00
[delta]
2022-07-01 22:04:56 +03:00
navigate = true # use n and N to move between diff sections
2021-12-20 07:26:17 +03:00
2024-03-22 14:34:34 +03:00
# delta detects terminal colors automatically; set one of these to disable auto-detection
# dark = true
# light = true
2021-11-30 04:54:48 +03:00
[merge]
conflictstyle = diff3
2021-11-30 17:39:59 +03:00
[diff]
2021-12-01 00:22:56 +03:00
colorMoved = default
2021-09-27 23:26:57 +03:00
```
2022-01-16 03:04:10 +03:00
Delta has many features and is very customizable; please see the [user manual ](https://dandavison.github.io/delta/ ).
## Features
2022-04-22 03:07:34 +03:00
- Language syntax highlighting with the same syntax-highlighting themes as [bat ](https://github.com/sharkdp/bat#readme )
2022-01-16 03:04:10 +03:00
- Word-level diff highlighting using a Levenshtein edit inference algorithm
- Side-by-side view with line-wrapping
- Line numbering
- `n` and `N` keybindings to move between files in large diffs, and between diffs in `log -p` views (`--navigate`)
- Improved merge conflict display
2022-10-06 20:38:30 +03:00
- Improved `git blame` display (syntax highlighting; `--hyperlinks` formats commits as links to hosting provider etc. Supported hosting providers are: GitHub, GitLab, SourceHut, Codeberg)
2022-01-16 03:04:10 +03:00
- Syntax-highlights grep output from `rg` , `git grep` , `grep` , etc
- Support for Git's `--color-moved` feature.
- Code can be copied directly from the diff (`-/+` markers are removed by default).
- `diff-highlight` and `diff-so-fancy` emulation modes
2022-10-06 20:38:30 +03:00
- Commit hashes can be formatted as terminal [hyperlinks ](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda ) to the hosting provider page (`--hyperlinks`).
2022-01-16 03:04:10 +03:00
File paths can also be formatted as hyperlinks for opening in your OS.
- Stylable box/line decorations to draw attention to commit, file and hunk header sections.
- Style strings (foreground color, background color, font attributes) are supported for >20 stylable elements, using the same color/style language as git
- Handles traditional unified diff output in addition to git output
2024-03-16 17:30:50 +03:00
- Automatic detection of light/dark terminal background
2022-01-16 03:04:10 +03:00
2021-11-30 17:39:59 +03:00
## A syntax-highlighting pager for git, diff, and grep output
2019-06-26 19:07:23 +03:00
2020-09-07 21:53:27 +03:00
Code evolves, and we all spend time studying diffs. Delta aims to make this both efficient and enjoyable: it allows you to make extensive changes to the layout and styling of diffs, as well as allowing you to stay arbitrarily close to the default git/diff output.
2020-07-01 21:56:10 +03:00
2020-08-04 05:07:49 +03:00
< table >
< tr >
< td >
< img width = 400px src = "https://user-images.githubusercontent.com/52205/86275526-76792100-bba1-11ea-9e78-6be9baa80b29.png" alt = "image" / >
< br >
< sub > delta with < code > line-numbers< / code > activated< / sub >
< / td >
< / tr >
< / table >
2020-08-04 05:01:27 +03:00
< table >
< tr >
< td >
< img width = 800px src = "https://user-images.githubusercontent.com/52205/87230973-412eb900-c381-11ea-8aec-cc200290bd1b.png" alt = "image" / >
< br >
< sub > delta with < code > side-by-side< / code > and < code > line-numbers< / code > activated< / sub >
< / td >
< / tr >
< / table >
2020-07-01 21:56:10 +03:00
Here's what `git show` can look like with git configured to use delta:
2020-03-04 06:15:07 +03:00
< br >
< table >
< tr >
< td >
< img width = 500px style = "border: 1px solid black"
2020-05-05 14:06:58 +03:00
src="https://user-images.githubusercontent.com/52205/81058545-a5725f80-8e9c-11ea-912e-d21954586a44.png"
2020-03-04 06:15:07 +03:00
alt="image" />
< / td >
< td >
< img width = 500px style = "border: 1px solid black"
2020-05-05 14:06:58 +03:00
src="https://user-images.githubusercontent.com/52205/81058911-6abcf700-8e9d-11ea-93be-e212824ec03d.png"
2020-03-04 06:15:07 +03:00
alt="image" />
< / td >
< / tr >
< tr >
< td >
2020-05-05 14:06:58 +03:00
"Dracula" theme
2020-03-04 06:15:07 +03:00
< / td >
< td >
2020-05-05 14:06:58 +03:00
"GitHub" theme
2020-03-04 06:15:07 +03:00
< / td >
< / tr >
< / table >
2020-05-05 14:02:47 +03:00
< br >
< br >
2022-01-16 03:04:10 +03:00
### Syntax-highlighting themes
2020-05-05 13:46:45 +03:00
**All the syntax-highlighting color themes that are available with [bat ](https://github.com/sharkdp/bat/ ) are available with delta:**
< br >
< table >
< tr >
< td >
2022-01-16 03:04:10 +03:00
< img width = 400px style = "border: 1px solid black"
2022-01-14 03:41:46 +03:00
src="https://user-images.githubusercontent.com/52205/149431273-e3ad049d-771e-4186-869d-0e57967958a6.png"
2020-05-05 13:46:45 +03:00
alt="image" />
< / td >
< td >
2022-01-16 03:04:10 +03:00
< img width = 400px style = "border: 1px solid black"
2022-01-14 03:41:46 +03:00
src="https://user-images.githubusercontent.com/52205/149431419-48836001-2afc-4fd0-97ad-561a69b71db7.png"
2020-05-05 13:46:45 +03:00
alt="image" />
< / td >
< / tr >
< tr >
< td >
2020-07-01 21:56:10 +03:00
< code > delta --show-syntax-themes --dark< / code >
2020-05-05 13:46:45 +03:00
< / td >
< td >
2020-07-01 21:56:10 +03:00
< code > delta --show-syntax-themes --light< / code >
2020-05-05 13:46:45 +03:00
< / td >
< / tr >
< / table >
2020-03-04 06:15:07 +03:00
< br >
2020-07-11 21:19:09 +03:00
### Side-by-side view
2021-05-25 02:45:55 +03:00
2022-01-16 03:04:10 +03:00
[[User manual ](https://dandavison.github.io/delta/side-by-side-view.html )]
2020-07-11 21:19:09 +03:00
```gitconfig
[delta]
side-by-side = true
```
2021-05-25 02:45:55 +03:00
2020-07-11 21:19:09 +03:00
By default, side-by-side view has line-numbers activated, and has syntax highlighting in both the left and right panels: [[config ](#side-by-side-view-1 )]
2021-05-25 02:45:55 +03:00
2020-07-11 21:19:09 +03:00
< table > < tr > < td > < img width = 800px src = "https://user-images.githubusercontent.com/52205/87230973-412eb900-c381-11ea-8aec-cc200290bd1b.png" alt = "image" / > < / td > < / tr > < / table >
2022-01-16 03:04:10 +03:00
Side-by-side view wraps long lines automatically:
2021-10-27 15:30:50 +03:00
< table > < tr > < td > < img width = 600px src = "https://user-images.githubusercontent.com/52205/139064537-f8479504-16d3-429a-b4f6-d0122438adaa.png" alt = "image" / > < / td > < / tr > < / table >
2022-01-16 03:04:10 +03:00
### Line numbers
2019-09-17 14:51:37 +03:00
2022-01-16 03:04:10 +03:00
[[User manual ](https://dandavison.github.io/delta/line-numbers.html )]
2019-09-17 14:51:37 +03:00
2020-07-01 21:56:10 +03:00
```gitconfig
[delta]
line-numbers = true
2020-08-01 17:37:06 +03:00
```
2022-01-16 03:04:10 +03:00
< table > < tr > < td > < img width = 400px src = "https://user-images.githubusercontent.com/52205/86275526-76792100-bba1-11ea-9e78-6be9baa80b29.png" alt = "image" / > < / td > < / tr > < / table >
2020-07-13 21:24:09 +03:00
2021-12-06 06:37:27 +03:00
### Merge conflicts
2022-01-16 03:04:10 +03:00
[[User manual ](https://dandavison.github.io/delta/merge-conflicts.html )]
2021-12-06 06:37:27 +03:00
< table > < tr > < td > < img width = 500px src = "https://user-images.githubusercontent.com/52205/144783121-bb549100-69d8-41b8-ac62-1704f1f7b43e.png" alt = "image" / > < / td > < / tr > < / table >
2021-11-11 18:50:57 +03:00
### Git blame
2022-01-16 03:04:10 +03:00
[[User manual ](https://dandavison.github.io/delta/git-blame.html )]
2021-11-11 18:50:57 +03:00
2021-11-16 06:39:42 +03:00
< table > < tr > < td > < img width = 600px src = "https://user-images.githubusercontent.com/52205/141891376-1fdb87dc-1d9c-4ad6-9d72-eeb19a8aeb0b.png" alt = "image" / > < / td > < / tr > < / table >
2021-11-11 18:50:57 +03:00
2023-03-15 12:52:44 +03:00
### Ripgrep, git grep
[[User manual ](https://dandavison.github.io/delta/grep.html )]
2023-05-05 05:53:53 +03:00
< table > < tr > < td >
< img width = "600px" alt = "image" src = "https://github.com/dandavison/open-in-editor/assets/52205/d203d380-5acb-4296-aeb9-e38c73d6c27f" >
< / td > < / tr > < / table >
2023-03-15 12:52:44 +03:00
2022-01-16 03:04:10 +03:00
### Installation and usage
2020-07-01 21:56:10 +03:00
2022-01-16 03:04:10 +03:00
Please see the [user manual ](https://dandavison.github.io/delta/ ) and `delta --help` .
2024-08-16 16:13:04 +03:00
### Maintainers
2024-08-16 16:19:54 +03:00
- [@dandavison ](https://github.com/dandavison )
- [@th1000s ](https://github.com/th1000s )