4

У меня есть простое настраиваемое приглашение bash:

PS1="\[\e[47;1;30m\]\u@\h [\W] \!\[\e[0;32m\]$\[\e[0m\]"

Он отлично работал под Snow Leopard и отлично работал в Lion, пока я не установил Xcode. Я установил Xcode 3 (без System Tools или Unix Development), а затем 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

3 ответа3

3

Установите iTerm2, и первым делом после запуска он сообщил мне, что конфигурация для xterm-256colors отсутствует, и предложил ее установить. Это устранило проблемы с отображением терминала (что сейчас является практически спорным вопросом, поскольку iTerm2 является выдающимся).

2

Я столкнулся с той же проблемой после установки Xcode 4.1. Похоже, он заменил /usr/share/terminfo и пропустил дескриптор для xterm-256color , по умолчанию для терминалов Lion.

Вы можете проверить это в вашей системе с помощью: infocmp xterm-256color

Это должно вернуть дескриптор. Если это не так, он отсутствует в /usr/share/terminfo/78 .

Один из способов вернуться к работающему терминалу - установить «TERM = xterm-color», но тогда вы потеряете расширенные возможности xterm-256color . Что я сделал, так это восстановил /usr/share/terminfo из резервной копии (спасибо Time Machine). Если у вас нет резервной копии, вы можете скопировать ее с другого компьютера. Для получения дополнительной информации см. Эти примеры команд .

1

В ~/.bashrc или /etc /bashrc поместите:

export TERM=xterm
## or export TERM=xterm-color

Затем введите:

source ~/.bashrc

или же

source /etc/bashrc

Если у вас есть оба файла, поместите их в ~/.bashrc и найдите тот, что в ~.

Та же самая вещь произошла со мной вчера, когда я удалил и переустановил Xcode/developer-tools, и кажется, что переменная env 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,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .