DIFF-SO-FANCY(1) User Contributed Perl Documentation DIFF-SO-FANCY(1)
diff-so-fancy makes your diffs human readable instead of machine
readable. This helps improve code quality and helps you spot defects
faster.
Configure git to use "diff-so-fancy" for all diff output:
git config --global core.pager "diff-so-fancy | less --tabs=4 -RF"
git config --global interactive.diffFilter "diff-so-fancy --patch"
Use "-u" with diff for unified output, and pipe the output to
"diff-so-fancy":
diff -u file_a file_b | diff-so-fancy
We also support recursive mode with "-r" or "--recursive"
diff --recursive -u /path/folder_a /path/folder_b | diff-so-fancy
markEmptyLines: Colorize the first block of an empty line. (Default:
true)
git config --bool --global diff-so-fancy.markEmptyLines false
changeHunkIndicators: Simplify Git header chunks to a human readable
format. (Default: true)
git config --bool --global diff-so-fancy.changeHunkIndicators false
stripLeadingSymbols: Should the + or - symbols at line-start be
removed. (Default: true)
git config --bool --global diff-so-fancy.stripLeadingSymbols false
useUnicodeRuler: By default, the separator for the file header uses
Unicode line-drawing characters. If this is causing output errors on
your terminal, set this to false to use ASCII characters instead.
(Default: true)
git config --bool --global diff-so-fancy.useUnicodeRuler false
rulerWidth: By default, the separator for the file header spans the
full width of the terminal. Use rulerWidth to set the width of the
file header manually.
git config --global diff-so-fancy.rulerWidth 80
- https://github.com/so-fancy/diff-so-fancy
- https://github.com/dandavison/delta
Lazygit with diff-so-fancy integration
-
https://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md#diff-so-fancy
# vim: tabstop=4 shiftwidth=4 noexpandtab autoindent softtabstop=4
perl v5.40.2 2026-03-18 DIFF-SO-FANCY(1)
NAME
diff-so-fancy makes your diffs human readable instead of machine
readable. This helps improve code quality and helps you spot defects
faster.
USAGE
Git
Configure git to use "diff-so-fancy" for all diff output:
git config --global core.pager "diff-so-fancy | less --tabs=4 -RF"
git config --global interactive.diffFilter "diff-so-fancy --patch"
Diff
Use "-u" with diff for unified output, and pipe the output to
"diff-so-fancy":
diff -u file_a file_b | diff-so-fancy
We also support recursive mode with "-r" or "--recursive"
diff --recursive -u /path/folder_a /path/folder_b | diff-so-fancy
OPTIONS
markEmptyLines: Colorize the first block of an empty line. (Default:
true)
git config --bool --global diff-so-fancy.markEmptyLines false
changeHunkIndicators: Simplify Git header chunks to a human readable
format. (Default: true)
git config --bool --global diff-so-fancy.changeHunkIndicators false
stripLeadingSymbols: Should the + or - symbols at line-start be
removed. (Default: true)
git config --bool --global diff-so-fancy.stripLeadingSymbols false
useUnicodeRuler: By default, the separator for the file header uses
Unicode line-drawing characters. If this is causing output errors on
your terminal, set this to false to use ASCII characters instead.
(Default: true)
git config --bool --global diff-so-fancy.useUnicodeRuler false
rulerWidth: By default, the separator for the file header spans the
full width of the terminal. Use rulerWidth to set the width of the
file header manually.
git config --global diff-so-fancy.rulerWidth 80
HOMEPAGE
- https://github.com/so-fancy/diff-so-fancy
SEE ALSO
Delta
- https://github.com/dandavison/delta
Lazygit with diff-so-fancy integration
-
https://github.com/jesseduffield/lazygit/blob/master/docs/Custom_Pagers.md#diff-so-fancy
# vim: tabstop=4 shiftwidth=4 noexpandtab autoindent softtabstop=4
perl v5.40.2 2026-03-18 DIFF-SO-FANCY(1)