LINUX.ORG.RU

Перенос строки в терминале

 , , ,


0

2

Приветствую! Может кто знает, как решить проблему. Когда работаешь в обычном терминале Ubuntu и вводишь длинную команду, то доходя до конца окна терминала она не переноситься на новую строку, а продолжает печать символы в той же строке. В итоге все смешивается в кашу. Куда копать?

Спасибо!

stty -a

И тег [ code ] [ /code ] не забывай.

Проблема наблюдается в том терминале где ты уже что-то делал или в новооткрытом тоже?

Какой конкретно терминал?

Xenius ★★★★★ ()
Последнее исправление: Xenius (всего исправлений: 2)
Ответ на: комментарий от Rosh1ck

ты точно в терминале а не в эмуляторе терминала?

bass ★★★★★ ()
Ответ на: комментарий от Xenius
stty -a 
speed 38400 baud; rows 25; columns 51; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U;
eof = ^D; eol = <undef>; eol2 = <undef>;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z;
rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O;
min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread
-clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip
-inlcr -igncr icrnl ixon -ixoff -iuclc -ixany
-imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill
-ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh
-xcase -tostop -echoprt echoctl echoke -flusho
-extproc

В любом открытом. Приходится разворачивать на полный экран, чтобы команды не обрезались.

Rosh1ck ()
Ответ на: комментарий от Rosh1ck

Ну глюк странный конечно. Можешь пользоваться другим эмулятором терминала вместо gnome-terminal, например xterm или konsole

Обрати внимание на: rows 25; columns 51; Это значит, что устройство думает, что у тебя в терминале 51 символ на строку. Проверь, если ты расширяешь и сжимаешь окно терминала, это число меняется?

Командой вроде этой можно установить размер терминала, после этого должно быть нормально:

stty rows 25 columns 80
Xenius ★★★★★ ()
Ответ на: комментарий от Xenius

Очень странный! Рылся в Google, но тщетно.

Значения действительно меняются в зависимости от размера окна терминала. Если установить по Вашей команде, то значения перестают меняться, но сбрасывается, если открыть новый терминал.

Вероятно, мне стоит закинуть ее в .bashrc

И дополнительно, если зайти на сервере по SSH, то все в порядке, а на локальном компьютере проблема. Проблема в локальных настройках 100%, но вот пытаюсь понять, где смотреть.

Rosh1ck ()
Ответ на: комментарий от Rosh1ck

Значения действительно меняются в зависимости от размера окна терминала. Если установить по Вашей команде, то значения перестают меняться, но сбрасывается, если открыть новый терминал.

Ну ладно, а после этой команды перенос начинает работать? (если размер установить совпадающий с размером окна)

Для проверки запусти vim или less, должен быть на всё окно.

Вероятно, мне стоит закинуть ее в .bashrc

Вряд ли это хорошая идея, это временный ворэкраунд

Проблема в локальных настройках 100%, но вот пытаюсь понять, где смотреть.

Ну у тебя терминал на libvte, так что проверь:

1) Есть ли проблема в xterm или другом терминале НЕ на vte 2) Есть ли проблема в других терминалах на vte (например xfce Terminal)

Тогда будет понятно, в настройках VTE проблема, в настройках gnome-terminal или более глобальная. Я полагаю что vte, мне эта либа вообще не нравится.

Xenius ★★★★★ ()
Ответ на: комментарий от Xenius

Большое спасибо за помощь!

Да, закидывать в .bashrc - плохая идея.

Если установить команду, то терминал хорошо отображает длину строки, но в vim все превращается в кашу :)

Я проверю другие терминалы. Буду копать туда.

Rosh1ck ()

PS кастомный стоит?

Ловил такие проблемы из-за неправильных настроек цветов и прочих свистоперделок, попробуй сбросить на дефолт.

PunkoIvan ★★★★ ()
Ответ на: комментарий от PunkoIvan

Да! Проблема была в настройках приглашения в систему. Я менял ее, делал более минималистичной.

Вопрос решен. Всем спасибо за помощь!

Rosh1ck ()
23 ноября 2019 г.
Ответ на: комментарий от Rosh1ck

И что это значит, что ты поменял и в каких файлах?

Rulet ()

Это от неправильного $PS1. «Закрывай» \] то, что не выводится в консоль.

anonymous ()
Ответ на: комментарий от Rulet

Все равно не понял, что такое $PS1, и в каком файле нужно прописать

Если где-либо меняли переменную окружения PS1 (вид приглашения комстроки bash и совместимых оболочек) на что-либо и в нее были включены какие-либо неотображаемые символы (например, команды ANSI), то каждую непрерывную группу таких символов нужно обрамлять скобками «\[» в начале и «\]» в конце группы. Тогда bash, подсчитывая длину приглашения, вычтет из реальной длины строки приглашения длину невидимой части, что позволит избежать глюков от неправильного переноса строки по границе окна терминала.

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от Rulet

Все равно не понял, что такое $PS1

man bash

Раздел PROMPTING, а лучше всю справку. Использование линукс подразумевает чтение документации.

anonymous ()
Ответ на: комментарий от anonymous

Я в курсе, но не все же доки сразу читать, да и чтение доков далеко не всегда дает ответ в конкретном вопросе.

Rulet ()
Ответ на: комментарий от bormant

Я, наверное, не в ту тему написал. Я имел ввиду, например, когда через nano открываешь текстовый файл, и длинные строки этого текстового файла не переносятся а «вылазят» вправо, т.е. кусок строки не виден изначально, нужно перемещать курсор в конец такой строки или увеличивать окно эмулятора терминала. Так должно быть, или возможно чтобы был перенос слов и символов, т.е. чтобы сразу возможно было просматривать весь файл?

Rulet ()
Ответ на: комментарий от Rulet

Это (перенос длинных строк при отображении) регулируется настройками самого редактора (если предусмотрено его разработчиком). Например, в vi и vim желаемое имеется.
Есть ли подобная возможность в nano и как она включается я не знаю, не пользуюсь nano. При этом не нужно путать эту возможность со вставкой разрывав строк в сам редактируемый текст при внесении в него изменений (такое в nano точно есть).

bormant ★★★★★ ()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от bormant

Нашел, для nano – это параметр –softwrap, например: nano –softwrap /etc/apt/sources.list

Rulet ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.