Я использую стандартные версии bash и screen в OS X Lion.
Когда я нахожусь в сеансе экрана и прокручиваю назад историю bash, я прихожу к команде, которая достаточно длинна, чтобы ее перенести.
Я мог бы сначала набрать какую-нибудь команду:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
Это оборачивается правильно, как написано выше, но если я нажму вверх, чтобы получить доступ к нему через историю bash, консоль отобразит только:
83279836214c0.144847759343/
Поэтому подсказка и вся первая строка команды отсутствуют, что затрудняет редактирование; если я прокручиваю обратно до первой строки, она появляется, но перезаписывает последнюю строку вывода. Когда я выполняю команду, отображается остальная часть первой строки, и все выглядит так, как ожидалось:
selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$
Что более любопытно, это то, что если использовать историю для доступа к длинной команде, но я еще не выполнил ее, то используйте любую C-a
экранную команду, например, переключение в другое окно и затем обратно, или если я щелкаю из моего текущего окна терминала и вернемся к нему, команда истории теперь снова отображается правильно.
Мои PS1='\u@\h:\w$ '
так что ничего странного происходит.
Есть ли способ правильно показать всю команду при использовании истории? Я пытался играть с настройками обтекания экрана, но они только ухудшают ситуацию.
stty -a
шоу:
speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
-echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
-extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
-ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
-dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
источник
TERM
этоxterm-256color
иtput am; echo $?
просто дает мне 0.stty -a
?Ответы:
Исходя из ответа на комментарий выше, кажется, что вы переопределяете TERM в одном из ваших сценариев запуска. Находясь внутри экрана, ваш TERM должен быть установлен на «экран», а не «xterm-256color».
Я бы посмотрел ваши сценарии запуска оболочки. ~ / .bashrc, / etc / bash / bashrc и, возможно, другие, такие как ~ / .bash_profile и / etc / profile, в зависимости от того, как у вас все настроено. Если вы видите какие-либо настройки TERM = "...", их необходимо удалить.
источник