首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git-在eshell中登录

git-在eshell中登录
EN

Stack Overflow用户
提问于 2011-04-20 12:42:58
回答 5查看 2.8K关注 0票数 11

我正在尝试在eshell中运行git命令。当我运行时:

代码语言:javascript
复制
git log -p

它看起来像这样:

请注意,^[[k在光标之前。向下箭头键不起作用,它会给出错误提示‘找不到’。您可以在minibuffer上看到这一点。向下滚动的唯一方法是使用RETURN键,它看起来相当混乱:

我的$TERM设置为eterm,我也尝试了ansi。它们是一样的。以前有没有人经历过这种情况?

谢谢

编辑:

我有办法解决这个问题。我创建了这个函数:

代码语言:javascript
复制
(defun eshell/git (&rest args)
     (apply 'eshell-exec-visual (cons "git" args)))

因此,每次我运行git命令时,它都会在*git*缓冲区中启动输出。

如果你有其他方法,也请让我知道。

EN

回答 5

Stack Overflow用户

发布于 2011-04-20 21:38:21

因为使用了pager,所以只能使用RETURN滚动。您可以通过更改git的core.pager配置选项永久禁用它,也可以通过将GIT_PAGER环境变量设置为空字符串来临时禁用它。另一个可能的问题来源- ^[安全,用于切换颜色。您可以使用git 命令的--no-color log选项禁用它们

票数 4
EN

Stack Overflow用户

发布于 2011-04-27 23:04:05

你试过使用Magit吗?它将git集成到您的常规Emacs工作流中。我不能告诉你太多,因为我刚刚开始使用Emacs,我还在努力学习基础知识。虽然Magit看起来真的很不错。安装magit,在您的存储库中打开一个文件,然后运行M-x magit-log-long,这将使用带有ascii历史图形的git log的输出创建一个缓冲区。我非常确定您也可以从该缓冲区中签出旧提交,但您应该阅读手册以确保这一点。

票数 3
EN

Stack Overflow用户

发布于 2011-05-01 14:15:19

您必须在git中打开颜色,并且特定的伪终端在颜色中不起作用。尝试使用m-x ansi-term。它支持颜色,通常更像终端。

或者你可以试试这个钩子:

代码语言:javascript
复制
 (add-hook 'eshell-preoutput-filter-functions
           'ansi-color-filter-apply)

here引用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5725607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档