---
name: "icdiff"
section: "1"
platform: "linux"
package: "icdiff"
version: "2.0.7-4.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/icdiff"
---

# icdiff(1)

terminal side-by-side colorized word diff

## NAME

icdiff - terminal side-by-side colorized word diff

## SYNOPSIS

**icdiff** \[*options*\] *left\_file right\_file*

## DESCRIPTION

Show differences between files in a two column view.

## OPTIONS

- **--version**

  show program's version number and exit

- **-h**, **--help**

  show this help message and exit

- **--cols**=*COLS*

  specify the width of the screen. Autodetection is Unix only

- **--encoding**=*ENCODING*

  specify the file encoding; defaults to utf8

- **-E** MATCHER, **--exclude-lines**=*MATCHER*

  Do not diff lines that match this regex. Not compatible with the 'line-numbers' option

- **--head**=*HEAD*

  consider only the first N lines of each file

- **-H**, **--highlight**

  color by changing the background color instead of the foreground color.  Very fast, ugly, displays all changes

- **-L** LABELS, **--label**=*LABELS*

  override file labels with arbitrary tags. Use twice, one for each file. You may include the formatting strings '{path}' and '{basename}'

- **-N**, **--line-numbers**

  generate output with line numbers. Not compatible with the 'exclude-lines' option.

- **--no-bold**

  use non-bold colors; recommended for solarized

- **--no-headers**

  don't label the left and right sides with their file names

- **--output-encoding**=*OUTPUT\_ENCODING*

  specify the output encoding; defaults to utf8

- **-r**, **--recursive**

  recursively compare subdirectories

- **-s**, **--report-identical-files**

  report when two files are the same

- **--show-all-spaces**

  color all non-matching whitespace including that which is not needed for drawing the eye to changes.  Slow, ugly, displays all changes

- **--show-no-spaces**

  don't color whitespace-only changes

- **--tabsize**=*TABSIZE*

  tab stop spacing

- **-t**, **--truncate**

  truncate long lines instead of wrapping them

- **-u**, **--patch**

  generate patch. This is always true, and only exists for compatibility

- **-U** NUM, **--unified**=*NUM*, **--numlines**=*NUM*

  how many lines of context to print; can't be combined with **--whole-file**

- **-W**, **--whole-file**

  show the whole file instead of just changed lines and context

- **-P**, **--permissions**

  compare the file permissions as well as the content of the file

- **--strip-trailing-cr**

  strip any trailing carriage return at the end of an input line

- **--color-map**=*COLOR\_MAP*

  choose which colors are used for which items. Default is **--color-map=**'add:green\_bold,change:yellow\_bold,desc ription:blue,line-numbers:white,meta:magenta,permissio ns:yellow,separator:blue,subtract:red\_bold'.  You don't have to override all of them: '--colormap=separator:white,description:cyan

- **--is-git-diff**

  Show the real file name when displaying git-diff result

- **-x** PAT, **--exclude**=*PAT*

  exclude files that match PAT
