尝试让 git 的 core.pager 在 mingw 和 cygwin 上运行

尝试让 git 的 core.pager 在 mingw 和 cygwin 上运行

我正在尝试让 Windows 版 git 在 Windows 版 git 附带的 mingw bash 和我的 cygwin 终端中以相同的方式运行。

现在,我无法让 core.pager(它决定溢出屏幕的命令是否被分页)同时对两者进行操作。

如果我使用git config --global core.pager less,它在 mingw64 中可以正常工作,但在 cygwin 中却不行,尽管路径中有 cygwin 版本的less。在 cygwin 中,如果我将其设置为git config --global core.pager ''

我可以在 cygwin 中使用 让它工作 git config --global core.pager more。这会破坏它在 mingw 中不起作用,因为它没有more

我甚至尝试复制 mingwless.exe并命名它more.exe,但当我这样做时,git 输出的所有颜色都乱七八糟。Git 一定很聪明,知道不同的分页器可以处理什么。

现在我可以通过在 cygwin 和 mingw 中使用不同的方法来解决这个问题~/.gitconfig(我目前有一个从一个到另一个的符号链接),但这只是一个在它们最终不同步时才会发生的问题。

为什么 cygwin 不能less在 Windows 上运行git

还有其他解决方法我可以尝试吗?

答案1

对于 Cygwin 的问题,您可以使用此解决方案安装缺少的命令:

https://stackoverflow.com/a/11752133/4654241

这应该会为您提供有关 Cygwin 的更多和更少的信息。

至于如何在 Windows 命令提示符和 git-bash.exe 窗口之间进行 less/more 工作,我使用由Unx工具类并将其添加到我的路径中。

然后,使用 Windows 的 git-bash.exe 设置的路径将使用随 Git 安装的默认路径,Windows 命令提示符将使用 Windows UnxUtils 版本的 less。

相关内容