我有一个简单的自定义 bash 提示符:
PS1="\[\e[47;1;30m\]\u@\h [\W] \!\[\e[0;32m\]$\[\e[0m\]"
它在 Snow Leopard 下运行良好,在 Lion 下也运行良好直到我安装了 Xcode。我安装了 Xcode 3(没有系统工具或者Unix 开发),然后是 Xcode 4.1.1。
现在,插入符号从提示的中间开始。
并且,bash 完全无法进行换行。
如果我删除\[
和\]
,插入符号从正确的位置开始,但根本没有发生换行。
更糟糕的是,man
它坏了:
WARNING: terminal is not fully functional
- (press RETURN)
安装 Xcode 后我的终端发生了什么?有人知道如何改善这种情况吗?
回应Turadg 的回答:diff
报告说这些目录在我的 terminfo 文件夹中丢失,但在新安装的 Lion 文件夹中存在(所有其他目录都相同):
31、32、33、34、35、36、37、38、39、4c、4d、4e、50、51、58、66、6a、7a
答案1
安装 Xcode 4.1 后,我遇到了同样的问题。它似乎替换并遗漏了Lion 终端的默认/usr/share/terminfo
描述符。xterm-256color
您可以使用以下方法验证您的系统是否存在这种情况:
infocmp xterm-256color
这应该返回一个描述符。如果没有,则说明缺少该描述符/usr/share/terminfo/78
。
恢复工作终端的一种方法是设置“TERM=xterm-color”,但这样你就失去了 的扩展功能xterm-256color
。我所做的是/usr/share/terminfo
从备份中恢复(感谢 Time Machine)。如果你没有备份,你可以从另一台机器复制它。有关更多详细信息,请参阅这些示例命令。
答案2
安装 iTerm2,启动后它做的第一件事就是提醒我缺少 xterm-256colors 的配置,并建议安装它。这修复了终端显示问题(现在这实际上已经不重要了,因为 iTerm2 非常出色)。
答案3
在 ~/.bashrc 或 /etc/bashrc 中输入:
export TERM=xterm
## or export TERM=xterm-color
然后输入:
source ~/.bashrc
或者
source /etc/bashrc
如果您有两个文件,请将其放在您的 ~/.bashrc 中,并在您的 ~ 中获取其中一个文件。
昨天,当我卸载并重新安装 Xcode/developer-tools 时,也发生了同样的事情,似乎环境变量 TERM 被改为“xterm-256color”,这与 xterm-color 有很大不同:
[ 09:32 root@MacBook-Air ~ ]# infocmp -I xterm-256color > ~/xterm-256color.src
[ 09:32 root@MacBook-Air ~ ]# infocmp -I xterm-color > ~/xterm-color.src
[ 09:33 root@MacBook-Air ~ ]# diff xterm-color.src xterm-256color.src
1,4c1,4
< # Reconstructed via infocmp from file: /opt/local/share/terminfo/78/xterm-color
< xterm-color|xterm terminal emulator (X Window System),
< am, bce, xenl, km, mir, msgr, npc, mc5i,
< cols#80, it#8, lines#24, colors#8, pairs#64,
---
> # Reconstructed via infocmp from file: /opt/local/share/terminfo/78/xterm-256color
> xterm-256color|xterm with 256 colors,
> am, bce, ccc, xenl, km, mir, msgr, npc, mc5i,
> cols#80, it#8, lines#24, colors#256, pairs#32767,
12,15c12,17
< smir=\E[4h, rev=\E[7m, invis=\E[8m, smso=\E[7m, smul=\E[4m,
< ech=\E[%p1%dX, rmacs=\E(B, rmam=\E[?7l, sgr0=\E(B\E[m,
< rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
< flash=\E[?5h$<100/>\E[?5l, is2=\E[!p\E[?3;4l\E[4l\E>,
---
> smcup=\E[?1049h, smir=\E[4h, rev=\E[7m, invis=\E[8m,
> smso=\E[7m, smul=\E[4m, ech=\E[%p1%dX, rmacs=\E(B,
> rmam=\E[?7l, sgr0=\E(B\E[m, rmcup=\E[?1049l, rmir=\E[4l,
> rmso=\E[27m, rmul=\E[24m, flash=\E[?5h$<100/>\E[?5l,
> is2=\E[!p\E[?3;4l\E[4l\E>,
> initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
39,45c41,49
< smkx=\E[?1h\E=, rmm=\E[?1034l, smm=\E[?1034h,
< op=\E[39;49m, dch=\E[%p1%dP, dl=\E[%p1%dM, cud=\E[%p1%dB,
< ich=\E[%p1%d@, indn=\E[%p1%dS, il=\E[%p1%dL,
< cub=\E[%p1%dD, cuf=\E[%p1%dC, rin=\E[%p1%dT,
< cuu=\E[%p1%dA, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, rs1=\Ec,
< rs2=\E[!p\E[?3;4l\E[4l\E>, rc=\E8, vpa=\E[%i%p1%dd,
< sc=\E7, ind=^J, ri=\EM, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
---
> smkx=\E[?1h\E=, meml=\El, memu=\Em, rmm=\E[?1034l,
> smm=\E[?1034h, op=\E[39;49m, dch=\E[%p1%dP, dl=\E[%p1%dM,
> cud=\E[%p1%dB, ich=\E[%p1%d@, indn=\E[%p1%dS,
> il=\E[%p1%dL, cub=\E[%p1%dD, cuf=\E[%p1%dC,
> rin=\E[%p1%dT, cuu=\E[%p1%dA, mc0=\E[i, mc4=\E[4i,
> mc5=\E[5i, rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, rc=\E8,
> vpa=\E[%i%p1%dd, sc=\E7, ind=^J, ri=\EM,
> setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
> setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
47,48d50
< setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
< setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,