mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-09-15 18:16:25 -04:00
Many people don't understand what this means, which is apparent from the amount of issues that got filed because of this. Let's get rid of it to avoid this confusion. People will have to configure their pager twice if they want to use it both on the command line and in lazygit, which I think is not a big deal.
77 lines
2.3 KiB
Markdown
77 lines
2.3 KiB
Markdown
# Custom Pagers
|
|
|
|
Lazygit supports custom pagers, [configured](/docs/Config.md) in the config.yml file (which can be opened by pressing `e` in the Status panel).
|
|
|
|
Support does not extend to Windows users, because we're making use of a package which doesn't have Windows support.
|
|
|
|
## Default:
|
|
|
|
```yaml
|
|
git:
|
|
paging:
|
|
colorArg: always
|
|
```
|
|
|
|
the `colorArg` key is for whether you want the `--color=always` arg in your `git diff` command. Some pagers want it set to `always`, others want it set to `never`.
|
|
|
|
## Delta:
|
|
|
|
```yaml
|
|
git:
|
|
paging:
|
|
colorArg: always
|
|
pager: delta --dark --paging=never
|
|
```
|
|
|
|

|
|
|
|
A cool feature of delta is --hyperlinks, which renders clickable links for the line numbers in the left margin, and lazygit supports these. To use them, set the `pager:` config to `delta --dark --paging=never --line-numbers --hyperlinks --hyperlinks-file-link-format="lazygit-edit://{path}:{line}"`; this allows you to click on an underlined line number in the diff to jump right to that same line in your editor.
|
|
|
|
## Diff-so-fancy
|
|
|
|
```yaml
|
|
git:
|
|
paging:
|
|
colorArg: always
|
|
pager: diff-so-fancy
|
|
```
|
|
|
|

|
|
|
|
## ydiff
|
|
|
|
```yaml
|
|
gui:
|
|
sidePanelWidth: 0.2 # gives you more space to show things side-by-side
|
|
git:
|
|
paging:
|
|
colorArg: never
|
|
pager: ydiff -p cat -s --wrap --width={{columnWidth}}
|
|
```
|
|
|
|

|
|
|
|
Be careful with this one, I think the homebrew and pip versions are behind master. I needed to directly download the ydiff script to get the no-pager functionality working.
|
|
|
|
## Using external diff commands
|
|
|
|
Some diff tools can't work as a simple pager like the ones above do, because they need access to the entire diff, so just post-processing git's diff is not enough for them. The most notable example is probably [difftastic](https://difftastic.wilfred.me.uk).
|
|
|
|
These can be used in lazygit by using the `externalDiffCommand` config; in the case of difftastic, that could be
|
|
|
|
```yaml
|
|
git:
|
|
paging:
|
|
externalDiffCommand: difft --color=always
|
|
```
|
|
|
|
The `colorArg` and `pager` options are not used in this case.
|
|
|
|
You can add whatever extra arguments you prefer for your difftool; for instance
|
|
|
|
```yaml
|
|
git:
|
|
paging:
|
|
externalDiffCommand: difft --color=always --display=inline --syntax-highlight=off
|
|
```
|