Динамическая перенос строки в терминале GNOME

27

Как сделать так, чтобы строки в терминале GNOME динамически переносились при изменении размера окна?

Мариус Бутук
источник

Ответы:

19

В то время, когда был задан вопрос, это было невозможно в терминале Gnome. Однако исправление было принято в конце 2013 года. Это изменение не внесло его в Ubuntu 14.04, но оно должно быть частью Ubuntu 14.10.

В соответствии с проблемой на Launchpad , вы можете использовать эту функцию сегодня, включив PPA Gnome-team. Вы можете активировать промежуточный PPA Gnome-team (для получения последней версии необходима промежуточная версия), выполнив следующие действия.

 sudo apt-add-repository ppa:gnome3-team/gnome3-staging

Обновите свои источники

sudo apt-get update

Переустановите gnome-терминал, чтобы получить последнюю версию

sudo apt-get install gnome-terminal

Убедитесь, что у вас версия 3.13 или более поздняя (по состоянию на 10 сентября должна быть версия 3.13.1)

$ gnome-terminal --version
GNOME Terminal 3.12.1
Майкл Мартин-Смукер
источник
Я только что установил PPA Gnome-team, обновил, теперь у меня есть Gnome Terminal 3.10.2. Нет динамического переноса строк. Так...?
Джей Салливан
@ notfed Вам, вероятно, понадобится 3.12, которая доступна для Ubuntu 14.04 в stagingppa. Попробуй (на свой страх и риск)ppa:gnome3-team/gnome3-staging
Майкл Мартин-Смукер
Только что попробовал добавить "нормальный" ppa:gnome3-team:gnome3ppa, получил версию 3.10. После добавления ppa:gnome3-team:gnome3-stagingя получил правильную версию 3.13.1, так что я могу подтвердить, что это работает.
Виктор Белкхольм,
Это номер версии VTE, который действительно имеет значение. Функция появилась в vte-0.36 (соответственно, echo $VTE_VERSIONдолжна сообщать не менее 3600).
egmont
1
У меня сейчас GNOME Terminal 3.12.3на Ubuntu 14.04 используется этот метод, и переформатирование работает.
nh2
11

Терминал Gnome по умолчанию не позволяет вам делать это - однако, если вы набираете его в терминале screen- он будет запускать терминал в эмуляторе терминала, который действительно изменяет размер.

Например - здесь моя домашняя папка во время работы ls -l

введите описание изображения здесь

а вот такой же экран изменен по горизонтали

введите описание изображения здесь

Автоматический запуск Gnome-Terminal с экрана

cp /usr/share/applications/gnome-terminal.desktop ~/.local/share/applications

затем отредактируйте файл gnome-terminal.desktop и измените командную строку Exec на:

Exec=gnome-terminal -x screen -q
fossfreedom
источник
2
После установки пакета - sudo apt-get install screenон выполняет перенос строк, но screenкаждый раз запуск для этой цели не является на самом деле ненавязчивым. Давайте посмотрим, какие есть другие обходные пути.
Мариус Бутук
очень верно - обновили с дальнейшим предложением.
fossfreedom
Есть тема об интеграции экрана GNOME-Terminal + GNU и отчете об ошибке, но никто не работает над этим. Тем не менее, экран GNU выглядит как способ динамического переноса строк.
Максим Р.
1
Еще одна проблема: прокрутка теперь является рутиной. :( Может быть, хуже, чем не иметь оплавления.
allprog
1
Всем, кто думает попробовать это: сначала это круто, но очень странно, и я в конце концов прекратил его использовать
Джей Салливан
10

Я делаю большие успехи в реализации перемотки в VTE (gnome-терминал и т. Д.). Пожалуйста, просмотрите вышестоящую ошибку на https://bugzilla.gnome.org/show_bug.cgi?id=336238 , не стесняйтесь попробовать мой патч, если вы любите хакер. В случае каких-либо технических отзывов, пожалуйста, прокомментируйте эту ошибку, спасибо! Надеюсь, моя работа скоро закончится в основном VTE.

Эгмонт
источник
2
Я просто хочу выразить вам искреннюю благодарность за эту работу. Это непристойно, что VTE не перезаписать в 2013 году.
Джастин Форс
Если бы эта функция могла попасть в следующую версию Ubuntu, она была бы суперской!
allprog
Я надеюсь, что это будет сделано. Теперь он включен в версию 0.35 VTE, которая станет стабильной 0.36, частью стабильной версии Gnome 3.12.
egmont
К сожалению, это не сделало Ubuntu надежным, но вы можете обновить свои пакеты vte (и gnome-терминал) из промежуточной области gnome3 на launchpad.net/~gnome3-team/+archive/gnome3-staging/+packages
egmont
7

gnome-терминал не может этого сделать ( вышестоящая ошибка ).

После некоторых экспериментов, rxvt-unicode, похоже, будет работать.

Установить через центр программного обеспечения

sudo apt-get install rxvt-unicode

Перекомпоновка работает только после того, как у вас будет достаточно текста, чтобы заполнить весь экран, то есть, когда вы нажмете буфер прокрутки.

Что касается меня, я нахожу rxvt довольно уродливым, но если для вас важнее повторное опекание, сделайте это.

achiang
источник
Что меня удивляет, так это то, что до сих пор никто не думал о разработке нового нового терминала, не основанного на VTE, - вот почему большинство терминальных приложений для Linux не переворачиваются. Достаточно взглянуть на Terminal.app Mac OSX - он перекомпоновывается и является одним из лучших эмуляторов терминала, которые я использовал.
Папашу
6

Хотя, к сожалению, я не знаю ответа на этот вопрос для обычного терминального сеанса, я знаю, как это сделать, если вы используете screen (даже если вы используете byobu): заново подключите ваш экран с помощью следующего:

screen -raAd

Это позволит масштабировать сеанс экрана при изменении его размера (а также отключать все существующие запущенные сеансы), и это то, что я всегда использую для восстановления сеанса экрана.

Анна
источник
2
Это круто ... но теперь я не могу прокрутить вверх в терминале .... :(
gregghz
Для screenпросмотра смотрите этот вопрос .
Руслан
2

Насколько я знаю, это зависит от программы, которую вы используете. Сам терминал не может динамически переносить текст. Однако некоторые терминальные программы могут, например, less[1].

Обходным путем будет попытка передать [2] то, что вы хотите отобразить less.

[1] http://linuxcommand.org/lts0030.php#less

[2] http://linuxcommand.org/lts0060.php#pipes

Дариэль Дато-он
источник
0

Решение: установите экран ( sudo apt-get screen ) и запустите его в своем терминале.

ern0
источник
3
А еще лучше установить byobu . По сути, это хорошая оболочка screen, но есть одна приятная особенность: вы можете автоматически запускать ее во всех терминалах, поэтому вы вряд ли знаете, что она есть.
Ams
0

За последние 5 с лишним лет я периодически проводил длительные сессии по уходу и питанию машин Linux (в отдаленных местах). И, в основном, Gnome Terminal не совсем обрезает это ..

Я часто использовал SecureCRT и SecureFX (SFTP) на базе Windows как в XP, так и в Win7, а также в Ubuntu (под Wine ), предоставляя мне гораздо лучший набор функций, в том числе: мультиокна и / или вкладки, сохраненные настройки макросы входа в систему, раскраска по сеансам, много настроек, встроенный SFTP и даже сценарии. Всегда были небольшие глюки (с Wine, в частности с SFTP), и я часто возвращался в Gnome Terminal для локальных задач в Ubuntu .

Однако с начала этого года (в бета-версии) у меня был SecureCRT (родной для Ubuntu ). Помимо более тесной интеграции с Nautilus (или чем-то еще) для передачи файлов SFTP / SSH, это почти заменило мое использование терминала Gnome .

Даже новая конфигурация машины лучше благодаря удобному копированию и вставке , полной записи сеанса и сохраненным настройкам соединения. Он всегда имел превосходную обработку размеров, перетекания и набора символов даже в большинстве других терминальных приложений.

Я не пробовал, но он только что был выпущен для Mac OS X v1.5 (Intel) или v10.6 +.

david6
источник