Горизонтальная прокрутка в терминале

Я удивлен cat -n не был упомянут к настоящему времени.

12
28.03.2013, 14:22
2 ответа

То, что Вы спрашиваете, является терминалом бесконечной ширины, часть которой отображается. Это не, как традиционно работают терминалы, ни как приложения ожидают, что они будут работать.

Например, если терминал имеет бесконечную ширину, как визуальные приложения предназначены для работы, когда они хотят отобразить что-то посреди экрана?

Что-то приближающееся к этому, которое можно сделать, хотя использование GNU screen (Вы, как предполагается, можете присоединить экранную сессию от нескольких терминалов различных размеров, таким образом, экран знает, как отобразить маленькое окно более крупного терминала), и установите screen ширина окон к чему-то очень большому и затем обманывает визуальные приложения в размышление, что экран width является исходным.

Как (в screen)

c=$COLUMNS # assuming your shell has that variable
screen -X width -w 1000
stty cols "$c"

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

Затем, чтобы прокрутить и скопировать данные вставки, единственная опция состоит в том, чтобы использовать screenрежим копии. (<prefix>]) и переместите курсор (см. info -f screen -n Movement для того, чтобы переместиться в режиме копии).

tmux может иметь подобные возможности.

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

  • строки никогда не переносятся
  • визуальные приложения сказаны, что экран width - то, что помещается в окно, не бесконечность.
  • это также работало бы лучше, чем screen основанное решение выше в той его terminfo записи утверждает, что не делает, строка переносится так, приложения знают об этом, и БАКАЛАВР НАУК в начале строки не перемещается в конец предыдущей строки.
10
27.01.2020, 19:55
  • 1
    подсказки я уже нахожусь в gui среде поэтому, если я хочу открыть файл в визуальном редакторе, я могу просто запустить gui один от терминала. Легче скопировать в них затем, это находится в терминале так или иначе, так как Вы не можете действительно легко просто выделить блок путем перетаскивания в терминале с этим, получив сокращение. Выполнение screen -X width -w 1000 возвраты No screen session found., какие-либо идеи? –  srcspider 28.03.2013, 15:28
  • 2
    @srcspider Как я сказал, необходимо сделать это в screen. Запустить screen сначала. –  Stéphane Chazelas 28.03.2013, 15:46
  • 3
    okey я думаю, что получаю Вас теперь, в основном я должен работать screen -X width -w 1000 <mycommand> –  srcspider 28.03.2013, 16:08
  • 4
    @srcspider. Нет. screen на терминальном основанный эмулятор терминала. Таким образом, необходимо запустить его сначала как, необходимо было бы запустить xterm или gnome-terminal во-первых, путем выполнения screen команда. Затем в том новом эмуляторе терминала Вы выполняете это screen -X команда для сообщения screen изменить его ширину окна. См. также мой отредактированный ответ для terminator эмулятор, который я подозреваю, что Вы предпочтете. –  Stéphane Chazelas 28.03.2013, 16:25
  • 5
    Спасибо!, Даже если так или иначе я не заставляю их работать, по крайней мере теперь я знаю, почему я не могу заставить их работать как этот. –  srcspider 28.03.2013, 17:40

В то время как Emacs является, прежде всего, редактором и IDE ¹, это, оказывается, соответствует Вашей проблеме очень хорошо. Можно запустить программу в окне Emacs, и Emacs отображает его в простом терминале бесконечной ширины и высоты. Если курсор будет в конце буфера, то окно прокрутит, поскольку программа производит вывод; если Вы переместите курсор, то окно останется помещенным, когда вывод растет.

Ввести M-x shell RET (т.е. Alt+x shell Возвратитесь) запустить оболочку в буфере Emacs. Ввести C-u M-x shell RET или M-1 M-x shell RET запустить другую оболочку. Можно запустить программу в каждой оболочке и расположить буферы в нескольких окнах, как Вы желаете.

¹ Это, как иногда говорят, лучшая ОС, чем редактор, но только людьми, которые не используют его — это - просто шутка.

6
27.01.2020, 19:55

Теги

Похожие вопросы