A syntax-highlighting pager for git, diff, and grep output
Go to file
dependabot[bot] fe186677d7
Bump smol_str from 0.1.21 to 0.1.23 (#1058)
Bumps [smol_str](https://github.com/rust-analyzer/smol_str) from 0.1.21 to 0.1.23.
- [Release notes](https://github.com/rust-analyzer/smol_str/releases)
- [Commits](https://github.com/rust-analyzer/smol_str/compare/v0.1.21...v0.1.23)

---
updated-dependencies:
- dependency-name: smol_str
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-04 11:48:47 -04:00
.cargo Ignore RUSTSEC-2020-0071 2021-10-26 12:04:29 -04:00
.github Split README.md into mdbook manual 2022-01-15 19:27:24 -05:00
etc Bump version in files 2022-03-07 07:54:30 -05:00
HomeBrewFormula Bump version in files 2022-03-07 07:54:30 -05:00
manual Document DELTA_FEATURES in the manual 2022-06-25 11:51:11 -04:00
src Don't attempt to process ANSI sequences in non-UTF8 input 2022-07-02 17:07:29 -04:00
tests Fix hyperlink absolute paths (#939) 2022-02-14 12:30:30 -05:00
.gitattributes Exclude etc/performance/ from language detection 2020-08-07 00:01:42 -04:00
.gitignore Update .gitignore 2020-03-03 20:36:17 -06:00
ARCHITECTURE.md Initial version of ARCHITECTURE.md 2021-11-29 08:55:57 -05:00
Cargo.lock Bump smol_str from 0.1.21 to 0.1.23 (#1058) 2022-07-04 11:48:47 -04:00
Cargo.toml Bump smol_str from 0.1.21 to 0.1.23 (#1058) 2022-07-04 11:48:47 -04:00
CONTRIBUTING.md Recommend release build in CONTRIBUTING.org 2020-12-05 04:50:41 +00:00
LICENSE Edit license: exactly match https://opensource.org/licenses/MIT 2020-04-27 11:19:43 -04:00
Makefile Adjust benchmark command 2021-11-27 11:24:11 -05:00
README.md Update README.md to include git 2.37.0 workaround (#1116) 2022-07-01 15:04:56 -04:00
themes.gitconfig Improve blame format width in chameleon theme 2022-06-16 08:36:01 -04:00

image

CI Coverage Status Gitter

Get Started

Install it (the package is called "git-delta" in most package managers, but the executable is just delta) and add this to your ~/.gitconfig:

[core]
    pager = delta

[interactive]
    diffFilter = delta --color-only
[add.interactive]
    useBuiltin = false # required for git 2.37.0

[delta]
    navigate = true    # use n and N to move between diff sections
    light = false      # set to true if you're in a terminal w/ a light background color (e.g. the default macOS terminal)

[merge]
    conflictstyle = diff3

[diff]
    colorMoved = default

Delta has many features and is very customizable; please see the user manual.

Features

  • Language syntax highlighting with the same syntax-highlighting themes as bat
  • 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
  • Improved git blame display (syntax highlighting; --hyperlinks formats commits as links to GitHub/GitLab/Bitbucket etc)
  • 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
  • Commit hashes can be formatted as terminal hyperlinks to the GitHub/GitLab/Bitbucket page (--hyperlinks). 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

A syntax-highlighting pager for git, diff, and grep output

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.

image
delta with line-numbers activated
image
delta with side-by-side and line-numbers activated

Here's what git show can look like with git configured to use delta:


image image
"Dracula" theme "GitHub" theme


Syntax-highlighting themes

All the syntax-highlighting color themes that are available with bat are available with delta:


image image
delta --show-syntax-themes --dark delta --show-syntax-themes --light

Side-by-side view

[User manual]

[delta]
    side-by-side = true

By default, side-by-side view has line-numbers activated, and has syntax highlighting in both the left and right panels: [config]

image

Side-by-side view wraps long lines automatically:

image

Line numbers

[User manual]

[delta]
    line-numbers = true
image

Merge conflicts

[User manual]

image

Git blame

[User manual]

image

Installation and usage

Please see the user manual and delta --help.