75831


github の PR の diff 表示では、行ごとの diff に加えて、行中のどこの部分に差異があるのかを表示してくれます。例えば [linux の
PR から適当に拾ってきたこのページ](https://github.com/torvalds/linux/pull/10/files) などが具体例です。

今、コマンドライン上の diff においても、このように色付けができたら便利だろうと思い、その方法を探しています。

* * *

diff に色を付けようとして、見つかったパッケージは、 [colordiff というツール](https://www.colordiff.org/)
で、これを使うと、例えば `+` の行は緑色、`-`の行は赤色といったように、行ごとに色を付与してくれますが、最終的に実現したい github 的な
diff の再現において、「行中の差異の部分の表示」はやってくれていないな、と思っています。

### 質問

github の PR ページの diff のように、行中の差異の部分まで色わけしてくれるような diff
を、ターミナル上で実現したいのですが、これが可能になるツールなどはありませんでしょうか。


CC BY-SA 4.0
2021-05-14T06:53:04.333
75829
2021-05-16T23:49:01.893
754
question
unix
ターミナルの diff で、github のように、行の中で具体的に差分がある部分に色付けをしたい


[delta](https://crates.io/crates/git-delta) などがあります。

紹介してる記事を適当に探してみました  
[[Linux便利コマンド]
deltaを入れてみる](https://qiita.com/r12tkmt/items/ee504656a8ec0893ef40)

* * *

deltaは Rust製で, 他にも各種ツールがあるようです  
参考までに:  
<https://github.com/rust-unofficial/awesome-rust#development-tools>


CC BY-SA 4.0
2021-05-14T07:17:56.433
75830
2021-05-14T07:17:56.433
43025
75829
answer


英語版の [How to colorize diff on the command
line?](https://stackoverflow.com/q/8800578) にいくつか回答が集まっており、  
そのうちの一つに [ydiff](https://github.com/ymattw/ydiff) というツールが紹介されています。  
(求めているものは "Word-level diff" と英語では表現されるようです)

**表示例:**

[![](https://i.stack.imgur.com/SPQNG.png)](https://i.stack.imgur.com/SPQNG.png)

また、Git に [diff-highlight](https://github.com/git/git/tree/master/contrib/diff-
highlight) というモジュールが同梱されているのでこれを使う方法もあるようです。

**参考:**  
[gitのdiff-
highlightを使い始めた](https://udomomo.hatenablog.com/entry/2019/12/01/181404)


CC BY-SA 4.0
2021-05-14T07:20:55.743
75831
2021-05-14T07:20:55.743
3060
75829
answer


すでに回答がついていますが、つい一ヶ月ほど前（2021/4/14）に作成されたnpmライブラリで **git-split-diffs**
というものも紹介しておきます。自分が使ってみた限りですが、シェル内でGitHubの差分UIをかなり再現しています。

  * <https://github.com/banga/git-split-diffs>

## DEMO1

[Video](https://asciinema.org/a/Bsk7CFtZkDZ4Ea89BwDcbD8LA)

![DEMO1](https://raw.githubusercontent.com/banga/git-split-
diffs/main/screenshots/dark.png)

## DEMO2

[Video](https://asciinema.org/a/7HrYqF2vjfrKXt28bv6BUAcym)

![DEMO2](https://raw.githubusercontent.com/banga/git-split-
diffs/main/screenshots/github-light.png)


CC BY-SA 4.0
2021-05-14T08:36:28.907
75834
2021-05-14T08:36:28.907
7997
75829
answer

[code]

    wdiff foo.txt bar.txt | colordiff
    
[/code]


CC BY-SA 4.0
2021-05-16T23:49:01.893
75880
2021-05-16T23:49:01.893
4070
75829
answer