试用magit-delta

这个功能挺好的,不过因为刚上线的缘故,theme 还比较少,和有些 emacs theme (比如 spacemacs 的默认主题)配合得还不太好:

1赞

目前仅有这些主题:

# dark:
Theme: 1337
Theme: DarkNeon
Theme: Dracula
Theme: Monokai Extended
Theme: Monokai Extended Bright
Theme: Monokai Extended Origin
Theme: Nord
Theme: OneHalfDark
Theme: Solarized (dark)
Theme: Sublime Snazzy
Theme: TwoDark
Theme: ansi-dark
Theme: base16
Theme: zenburn
# light:
Theme: GitHub
Theme: Monokai Extended Light
Theme: OneHalfLight
Theme: Solarized (light)
Theme: ansi-light

感觉自带的magit-toggle-refine-hunk就已经很不错了,难道这个还能更好?

应该是更快吧,用 rust 写的

亲测,magit-delta 多行效果很好。比如把一块代码移到 if 块里能行间高亮出所有行的缩进。应该就是这表格里的第四个特性吧。推荐。

1赞

这个厉害了,墙裂推荐。不会再一坨一坨看不清楚改了啥了

就是说这个diff的算法出来的diff看得更清楚吗?

在diff result上做一层render而已,你看delta对标的是diff-so-fancy就知道了

1赞

感觉用起来没有默认的大块红绿舒服啊(是我的错觉吗

我也觉得是。。。

赞,我要抛弃 diff-so-fancy 了。


是楼主的配色导致 diff 对比不突出,换个 theme 或调整命令参数 --{plus,minus}-color 效果好很多。

2赞

Screenshot_2020-06-06_at_1_25_39_PM__delta-shows-the-function-name-in-diff-output

这个特性很有用,但是还不太准确。我修改的是结构体定义,并不在函数内:

 130 static size_t
 131 divide_round_up (size_t x, size_t y) <---
 132 {
 133   return (x + y - 1) / y;
 134 }
 135
 136 static const char dump_magic[16] = {
 137   'D', 'U', 'M', 'P', 'E', 'D',
 138   'G', 'N', 'U',
 139   'E', 'M', 'A', 'C', 'S'
 140 };
 141
 142 static pdumper_hook dump_hooks[24];
 143 static int nr_dump_hooks = 0;
 144
 145 static struct
 146 {
 147   void *mem;
 148   int sz;
 149 } remembered_data[64]; <---

试用了,觉得终端下更有用,对Emacs的theme支持太弱了。diff时代码高亮真心用处不大。用回原生的magit-diff color感觉更顺眼。

其实是因为背景的暗红/绿色没有到最右边,导致看起来有点空

这个diff可以比较出来整段的缩进没有改变,非常不错。但是大diff的时候git stage可以占用100%