我正在尝试在eshell中运行git命令。我跑的时候:
git log -p
它看起来像这样:
注意^ [光标前的k [。箭头键向下不起作用,它会给出“未找到”错误。你可以在迷你缓冲区看到。向下滚动的唯一方法是使用RETURN键,它看起来很乱:
我的$ TERM设置为eterm,我也尝试了ansi。他们是一样的。以前有人经历过这个吗?
由于
编辑:
我有办法解决这个问题。我创建了这个函数:
(defun eshell/git (&rest args)
(apply 'eshell-exec-visual (cons "git" args)))
所以每次运行git命令时,它都会在* git *缓冲区中启动输出。
如果您有其他方法,请告诉我。
答案 0 :(得分:4)
您只能使用RETURN滚动,因为使用了寻呼机。您可以通过更改git的 core.pager 配置选项来永久禁用它,也可以通过将 GIT_PAGER 环境变量设置为空字符串来临时禁用它。另一个可能的问题来源 - ^ [secuences,用于切换颜色。您可以使用 - 无颜色选项为 git log 命令
禁用它们答案 1 :(得分:3)
您是否尝试过使用Magit?它将git集成到您的普通Emacs工作流程中。我不能告诉你很多,因为我刚刚开始使用Emacs,我仍然在努力学习基础知识。马吉特看起来真的很不错。安装magit,在您的仓库中打开一个文件,然后运行M-x magit-log-long
,这将创建一个缓冲区,其输出为git log
,带有ascii历史记录图。我很确定你也可以从那个缓冲区中检查旧的提交,但你应该阅读手册以确定。
答案 2 :(得分:3)
你必须在git中打开颜色,并且特定的伪终端不能用于彩色。尝试使用m-x ansi-term
。它支持颜色,通常更像终端。
或者你可以尝试这个钩子:
(add-hook 'eshell-preoutput-filter-functions
'ansi-color-filter-apply)
引自here。
答案 3 :(得分:1)
通过将git的内置寻呼机设置为cat
来禁用它:
git config --global core.pager cat
答案 4 :(得分:0)
vc-print-root-log命令(C-x v L)在只读缓冲区中打印格式良好的git日志,您可以搜索,差异和显示提交。