Emacs Magit差异突出显示

13

我刚开始接触magit,很喜欢它,但差异查看器对我来说真的很烦人。块高亮没有意义,因为当我滚动屏幕时,光标随之移动,突出显示新区域。在 magit diff 模式中也没有其他语法高亮。有人知道如何禁用块高亮并获得除白色和灰色以外的更好的差异颜色吗?

谢谢。

5个回答

13

Magit 在组合使用 Emacs 标准主题“wombat”时存在问题。

为解决此问题,请执行以下操作:

M-x customize

搜索 magit-item-highlight,点击 Show All Attributes,取消勾选 Inherit,然后点击 Save and Apply(或者只点击Apply)。

这样做会失去当前差异块的高亮显示,但是您仍然可以从差异块标题中看出这一点,所以它有些多余。否则,这种方法可以很好地解决问题。


这样做的话,我也会失去一些看起来很有用的地方的高亮显示,例如日志... - user319799
1
非常有用的描述,教你如何自定义。对我这个Emacs新手很有帮助。 - Srikanth Kyatham

6

1
不知道它应该默认开启。经过一番搜索,发现我的emacs颜色主题在妨碍它。禁用它后好了一些。灰色高亮仍然会淡化文本,但我可以处理这个问题,并可能最终解决它。 - Chris H

4

应该有一个自定义组 magit,允许您为 diff 查看器自定义所有不同的面孔。

换句话说,您可以运行

M-x customize-group RET magit-faces RET

查看Magit使用的所有表情符号列表。当然,与差异查看器相关的是以Magit Diff开头的表情符号。

只需自定义并选择应用并保存即可。或者,您可以使用自定义界面查看可用的表情符号,然后在您的init-file中直接使用set-face-foregroundset-face-background等设置它们。


4
有些具体细节会很不错。 - unohoo

3
如果您正在运行最新的1.0版本,则还可以导航到任何差异块,按“e”键以获取差异的ediff演示。

我正在运行版本1.0。在状态缓冲区中按e键会显示“无法解析块”或“无法解析<文件名>”。 - Chris H

0
如果出于某种原因您不想尝试使用M-x customize,只需将以下代码片段放置在您的init.el文件中即可。
(defun disable-magit-highlight-in-buffer () 
  (face-remap-add-relative 'magit-item-highlight '()))

(add-hook 'magit-status-mode-hook 'disable-magit-highlight-in-buffer)

来源:https://github.com/magit/magit/issues/133


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接