Екран відключає початок тривалої команди, коли доступ до нього здійснюється через історію баш


9

Я використовую версії bash і screen за замовчуванням в OS X Lion.

Коли я перебуваю на екрані, я прокручую історію башів, і я приходжу до команди, яка достатньо довга, щоб завершити.

Я можу спершу ввести якусь команду:

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, коли всередині екрана та забезпечити вихід? Крім того, якщо ви запускаєте tput am; echo $ ?, що ви отримуєте?
Патрік

TERMє xterm-256colorі tput am; echo $?просто дає мені 0.
selassid

Крім того, це відбувається лише тоді, коли ви прокручуєте історію в нижній частині вікна, тому весь текст повинен рухатися вгору, щоб показати вам другий рядок команди з вашої історії.
selassid

Який результат stty -a?
Енді Сміт

Я додав це в нижній частині публікації. Він відповідає тому, що виводиться, коли екран не працює.
selassid

Відповіді:


1

Виходячи з відповіді на вищезазначений коментар, здається, що ви переважаєте TERM в одному зі своїх сценаріїв запуску. Перебуваючи на екрані, термін повинен бути встановлений на "екран", а не на "xterm-256color".

Я перегляну ваші сценарії запуску оболонки. ~ / .bashrc, / etc / bash / bashrc та, можливо, інші, як ~ / .bash_profile та / etc / profile, залежно від того, як у вас все налаштовано. Якщо ви бачите будь-які налаштування TERM = "...", їх потрібно видалити.


Це було правдою, але навіть після їх видалення та перевірки того, що TERM є "екраном" всередині екрану, проблема все ще не вирішує.
selassid

У вас є ~ / .inputrc або / etc / inputrc? Якщо так, переконайтеся, що режим горизонтальної прокрутки не встановлений, або його значення вимкнено.
Патрік

У мене є ~ / .inputrc, але режим горизонтальної прокрутки не встановлений, і якщо його вимкнути, поведінка не змінюється. У мене ввімкнено-мета та вихідний-мета вмикається та перетворюється-мета вимикається, але видалення цих налаштувань не змінює поведінку.
selassid
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.