如何在OSX上配置emacs.app以在* shell *中使用git for git

时间:2010-10-17 06:03:24

标签: git emacs

我在OsX上使用emacs.app 23.1.1并试图在 shell 中使用git。
当我使用像git log-p这样的命令时,我得到了

WARNING: terminal is not fully functional
-  (press RETURN)

我也得到与git commit类似的内容,我被迫使用git commit -m

如何配置emacs.app以便它在 shell 中运行?

7 个答案:

答案 0 :(得分:5)

这对你有用吗?

M-x term

参见the docs(它提供了比 M-x shell 更完整的终端仿真)。

答案 1 :(得分:4)

您是否至少将git编辑器配置为emacs? (如Pro Git bookCommunity Git book中所示)

git config -–global core.editor emacs

因为那样,永远不应该调用'vi'。

答案 2 :(得分:4)

git log命令(愚蠢地,恕我直言)默认情况下通过“寻呼机”推送所有内容。有关如何禁用此功能,请参阅this answer

同样,git help显然只是调用man,因此您可以尝试:

MANPAGER=cat git help log

答案 3 :(得分:2)

GIT_PAGER环境变量设置为/bin/cat

对于Bash,请添加到.bashrc

export GIT_PAGER=/bin/cat

答案 4 :(得分:1)

* shell *是一个哑终端,所以你不会走得太远。我是第二个Trey Jackson推荐的M-x term。此时,您仍可能遇到问题:通常不会安装eterm-color的术语信息。作为临时修复,您可以尝试

mkdir ~/.terminfo/65;
cp /Applications/MacPorts/Emacs.app/Contents/Resources/etc/e/eterm-color ~/.terminfo/65/

获取emacs.app带来的副本(假设您通过MacPorts安装了emacs.app - 根据需要调整路径)。如果一切顺利,那么您可以考虑在全球术语信息'数据库'中进行设置。

另外:如果你在emacs中运行shell并且你将编辑器设置为emacs,你最终会尝试在emacs内的shell中加载emacs。这肯定是头疼的事。看一下emacs服务器和/或守护进程模式。

答案 5 :(得分:1)

要添加上一个答案,建议 Mx术语:... 如果您要进入模式而不是 shell模式,请确定你是内联模式,所以它的行为更像普通的 emacs缓冲区(Cc Cj)。如果已经是内联模式,那么这将无能为力。要在术语模式之间切换:线路模式(C-c C-j)字符模式(C-c C-k)。此外,您可能需要尝试 ansi-term(M-x ansi-term)而不仅仅是术语。

答案 6 :(得分:0)

安装完东西后我遇到了这个问题。我的术语被设置为'xterm-256color'。在我的〜/ .bash_profile中将其更改为'xterm-color'解决了这个问题。只需添加:

export TERM="xterm-color"