git-log在eshell中

我正在尝试在eshell中运行git命令。当我跑步时:
git log -p
它看起来像这样: 注意,光标前的^ [[k。向下箭头键不起作用,它将显示错误消息“未找到”。您可以在minibuffer中看到它。向下滚动的唯一方法是使用RETURN键,它看起来很混乱: 我的$ TERM设置为eterm,我也尝试过ansi。他们是一样的。有人曾经经历过吗? 谢谢 编辑: 我有办法解决这个问题。我创建了这个功能:
(defun eshell/git (&rest args)
     (apply \'eshell-exec-visual (cons \"git\" args)))
因此,每次我运行git命令时,它将在* git *缓冲区中启动输出。 如果您还有其他方法,也请让我知道。
已邀请:
因为使用了寻呼机,所以只能使用RETURN滚动。您可以通过更改git \的core.pager config选项来永久禁用它,也可以通过将GIT_PAGER环境变量设置为空字符串来暂时禁用它。另一个可能的问题来源-^ [安全感,用于切换颜色。您可以使用--no-color选项在git log命令中禁用它们
您是否尝试过使用Magit?它将git集成到您的常规Emacs工作流程中。关于此事,我无法告诉您太多信息,因为我才刚刚开始使用Emacs,而且我仍在尝试学习基础知识。马吉特似乎真的很好。安装magit,在仓库中打开一个文件,然后运行
M-x magit-log-long
,这将创建一个缓冲区,输出为with3ѭ,并带有ascii历史记录图。我很确定您也可以从该缓冲区中签出旧提交,但是请务必阅读手册。
您必须在git中启用颜色,并且特定的伪终端无法使用颜色。尝试使用
m-x ansi-term
。它支持颜色,并且通常更像终端。 或者,您可以尝试以下钩子:
 (add-hook \'eshell-preoutput-filter-functions
           \'ansi-color-filter-apply)
从这里引用。
通过将git \的内置寻呼机设置为
cat
来禁用它:
git config --global core.pager cat
vc-print-root-log命令(C-x v L)在只读缓冲区中打印格式正确的git日志,您可以在其中搜索,比较和显示提交。

要回复问题请先登录注册