Таким образом, я считаю, что уже 2 вопроса по этому вопросу. Все они имеют отношение tail -f
и, следовательно, люди дают касательный ответ «меньше пользуйтесь».
Мне это нужно для всего, для каждой команды и т. Д. Проблема в том, что мне нужно запускать много консольных окон, и даже при наличии нескольких мониторов их все равно приходится сокращать. Как следствие, почти каждый вывод обрабатывается переносом строк и неудобно читать.
Одно из предложенных решений echo -ne '\e[?7l'
, которое работает, несколько. Проблема сейчас, есть ли способ получить полосы прокрутки на консоли?
Ubuntu 12.10, Terminal
ls
иmcedit
прекрасно работают в нем, потому что ширина экрана и буфера ширина обрабатываются отдельно.Ответы:
То, что вы спрашиваете, это терминал бесконечной ширины, часть которого отображается. Дело не в том, как традиционно работают терминалы, и как приложения ожидают их работы.
Например, если терминал имеет бесконечную ширину, как должны работать визуальные приложения, когда они хотят что-то отобразить в середине экрана?
Что-то подходящее, что вы можете сделать, это использовать GNU
screen
(вы должны иметь возможность присоединять сеанс экрана от нескольких терминалов разных размеров, чтобы экран знал, как отобразить маленькое окно большего терминала) и установитьscreen
ширину окна на что-то очень большие, а затем обманывать визуальные приложения, думая, что ширина экрана является оригинальной.Как (внутри
screen
)Некоторые визуальные приложения будут работать нормально, некоторые не очень хорошо (для установки, когда они делают относительное позиционирование или когда они зависят от переноса терминала).
vim
кажется, работает нормально.Затем для прокрутки и копировать вставить данные, единственным вариантом является использование
screen
«s копировать режим. (<prefix>]
) и перемещайте курсор (см.info -f screen -n Movement
перемещение в режиме копирования ).tmux
может иметь аналогичные возможности.Этот
terminator
эмулятор терминала (на основе Java), который неterminator
входит в Ubuntu, также делает это с бесконечной шириной терминала:screen
основанное выше решение в том смысле, что его запись terminfo утверждает, что не выполняет перенос строки, поэтому приложения знают об этом, и BS в начале строки не перемещается в конец предыдущей строки.источник
screen -X width -w 1000
возвращаетсяNo screen session found.
, есть идеи?screen
. Начнитеscreen
сначала.screen -X width -w 1000 <mycommand>
screen
- терминальный эмулятор терминала. Поэтому вам нужно запустить его сначала так, как вам нужно,xterm
илиgnome-terminal
сначала, запустивscreen
команду. Затем, внутри этого нового эмулятора терминала, вы запускаете этуscreen -X
команду, чтобы указатьscreen
изменить ширину окна. Смотрите также мой отредактированный ответ дляterminator
эмулятора, который я подозреваю, вы предпочтете.Хотя Emacs является в первую очередь редактором и IDE¹, он вполне соответствует вашей проблеме. Вы можете запустить программу в окне Emacs, и Emacs отобразит ее в немом терминале бесконечной ширины и высоты. Если курсор находится в конце буфера, окно прокручивается по мере того, как программа выводит данные; если вы перемещаете курсор, окно будет оставаться на месте по мере роста выходных данных.
Введите
M-x shell RET
(т.е. Alt+ xshell
Return), чтобы запустить оболочку в буфере Emacs. ВведитеC-u M-x shell RET
или,M-1 M-x shell RET
чтобы запустить другую оболочку. Вы можете запустить программу в каждой оболочке и расположить буферы в нескольких окнах по своему желанию.Sometimes Иногда говорят, что это лучшая ОС, чем редактор, но только люди, которые ею не пользуются - это просто шутка.
источник