【问题标题】:How to set up a different pager and color mode in Mercurial?如何在 Mercurial 中设置不同的寻呼机和颜色模式?
【发布时间】:2022-08-06 21:21:46
【问题描述】:
我在.hgrc 中设置了Mercurial 以使用less 作为寻呼机以及this guide 之后的自定义颜色和模板:
[pager]
pager = LESS=\'FSrX\' less
[templates]
# ...
[color]
mode=terminfo
这很好用,我想为除hg diff 之外的所有命令保留它。仅对于此命令,我想使用完全不同的机制:
是否可以通过这种方式配置 Mercurial?
标签:
mercurial
diff
pager
hgrc
【解决方案1】:
我找到了一个解决方案here,它使用extdiff extension 实现了这个设置。
[extensions]
hgext.extdiff =
[extdiff]
cmd.delta =
[alias]
diff = delta
早些时候我有这个解决方法 - 创建一个单独的别名:
[alias]
d = !$HG diff "$@" | delta
不幸的是,无法以这种方式替换原来的 diff 命令。虽然可以(尽管discouraged)用别名替换命令,但在这种情况下它不起作用:从diff 别名调用$HG diff 会导致无限循环。
【解决方案2】:
-
小心使用 2014 年到 2022 年的 Mercurial 手册,它们可能已经过时且无关紧要
-
现在正确使用 less 作为寻呼机(没有寻呼机扩展的人工制品)
[pager]
pager = less -FRX
-
根据新鲜 HG (6.2) 中的hg help pager,您可以使用活动寻呼机禁用某些命令使用它
您可以通过将某些命令添加到 pager. Ignore 列表来禁用寻呼机
即有某事。喜欢
[pager]
ignore = diff
并完全获得差异而无需分页
- 从另一边(与上述相反),你可以使用
--config
设置/覆盖配置选项(使用'section.name=value')
调用 hg diff 的选项(当|如果你将 delta 作为工作寻呼机)并且为简单起见为“hg diff with delta”创建 hg-alias,如
ddiff = diff --config pager.pager=delta $@