Magit:如何显示行内差异


14

我有一个文件,我做了一些更改。此处SmartGit如何显示差异。

smartgit

如您所见,它显示了差异在行内的位置。在特定位置将背景更改为红色。而且非常好。我不需要花时间去寻找差异。我立即看到区别在哪里。

现在在Magit中看起来是这样的:

在此处输入图片说明

如您所见,Magit说差异在于整个行。它没有显示差异在行内的位置。所以我需要手动找到区别。我每次都需要这样做。这不是很可比。假设我在20行中有差异。我需要花费大量时间来查找实际发生的变化。不太好

magit可以在更改所在的实际列中显示差异吗?就像在SmartGit中一样。

Answers:


3

如果您想像我一样将其存储在您的配置中,只需添加

(setq magit-diff-refine-hunk (quote all))

给你 .emacs.d/init.el


这是受到菲尔斯回答的启发。


16

M-x customize-option RET magit-diff-refine-hunk RET

另请参见magit-diff-toggle-refine-hunk绑定到的命令,Dt您可以使用该命令设置当前缓冲区中的行为。使用DC-ut上细化为交换机所有的缓冲守财奴; 否则,在任何给定时间都只会显示当前选定的块的细化(在块之间移动时会更新)。

要配置差异,使用的“精”区域的外观M-x customize-facediff-refine-addeddiff-refine-changeddiff-refine-removed面。


1

为了使单词差异起作用,magit需要能够使用diff可执行文件。

因此,请确保不会M-x ielm RET (executable-find "diff") RET返回nil。如果返回,nil则将路径添加到包含diff可执行文件的文件夹中,并exec-path使用M-x ielm RET (add-to-list 'exec-path "c:/Program Files/Git/usr/bin") RET

接下来,您需要确保magit实际上正在使用该diff可执行文件。为此输入一个magit status缓冲区,点击D并确保-x Disallow external diff drivers (--no-ext-diff)已禁用。否则用禁用它,用-x设置为默认值,s然后用保存默认值Dw

完成此操作后,您可以使用Dt切换magit-diff-refine-hunk当前缓冲区的选项,或者由phils遵循此答案以使此设置更永久。


0

尝试ediff-toggle-ignore-casecompare-ignore-case可变。我的猜测是您的差异引擎正在忽略大小写。可能也位于diff选项中(我不确定设置是什么)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.