我在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 中运行?
答案 0 :(得分:5)
答案 1 :(得分:4)
您是否至少将git编辑器配置为emacs? (如Pro Git book和Community 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"