Що ви запитуєте - це термінал нескінченної ширини, частина якого відображається. Це не те, як традиційно працюють термінали, а не в тому, як програми очікують їх роботи.
Наприклад, якщо термінал має нескінченну ширину, як мають працювати візуальні додатки, коли вони хочуть щось відобразити посередині екрана?
Щось наближається, що ви можете зробити, хоча використовувати GNU screen(ви повинні мати змогу приєднати сеанс на екрані з кількох терміналів різного розміру, щоб екран знав, як відобразити невелике вікно більшого терміналу) і встановити screenширину вікон на щось дуже великі, а потім наводять візуальні програми на думку, що ширина екрана є оригінальною.
Як (у межах screen)
c=$COLUMNS # assuming your shell has that variable
screen -X width -w 1000
stty cols "$c"
Деякі візуальні програми будуть працювати добре, деякі не так добре (для встановлення, коли вони роблять відносне позиціонування або коли вони покладаються на обгортку терміналу). vimздається, працює добре.
Потім для прокрутки і копіювати вставити дані, єдиним варіантом є використання screen«s копіювати режим. ( <prefix>]) і переміщатися по курсору (див. info -f screen -n Movementпересування в режимі копіювання ).
tmux можуть мати подібні можливості.
Цей terminatorтермінальний емулятор (на базі java), який не є тим, terminatorщо поставляється з ubuntu, також робить це лише з нескінченною шириною терміналу:
- лінії ніколи не загортаються
- візуальним програмам повідомляється, що ширина екрана не залежатиме від вікна, а не нескінченність.
- це також буде працювати краще, ніж
screenбазоване вище рішення, оскільки його запис терміна вказує, що він не робить обертання рядків, тому програми знають про це, і BS на початку рядка не рухається до кінця попереднього рядка.
lsіmceditв ньому добре працюють, оскільки ширина екрана та ширина буфера обробляються окремо.