Як прокручувати вгору у вікні терміналу, коли новий вхід генерується, не перекидаючись на дно (Linux)


37

В Ubuntu я хочу прокрутити вгору, поки команда працює в моєму вікні терміналу і генерує новий вихід (насправді команда виконується rspec). Я можу прокрутити вгору, але щоразу, коли rspec генерує новий рядок консольного виходу, він відкидає мене назад до низу. Чи є спосіб прокрутити все вгору? Я використовую термінатор на Linux Mint / Ubuntu 12.04 LTS

ОНОВЛЕННЯ

Я знайшов можливе вирішення домашньої сторінки Terminator, що говорить, що с

stty ixon

ви можете увімкнути "Керування потоком XON / XOFF для термінального виходу. Бути в змозі призупинити вихід, набравши ^ S і відновити його, набравши ^ Q [...]"

Це не зовсім те, що я хотів, не маючи призупинення виводу (і, можливо, цікаво, коли забули ввімкнути його знову), я подумав, що може бути простий ключ модифікатора, як shft-alt з прокруткою колеса миші .. Будь-який кращі рішення?


Це одне, що мені дуже подобається у LXTerminal (LXDE).
Метью Лундберг

Ви прокручуєте Shift-PgUp або смугою прокрутки?
ott--

@MatthewLundberg Зазвичай за допомогою колеса прокрутки миші, тому прокрутка. Але це також не працює з shift-pgup: (Чи можу я також мати lxterminal всередині термінатора, ви знаєте?
Йо Людке

1
xfce4-terminalє опція " Прокрутка на виході", яку ви можете зняти, і виконувати лише те, що ви просили.
Мартін Канавал

1
Як вирішення, ви можете надіслати вихід у файл, відкрити інший термінал і tail -f file.txtпобачити його, як він генерується. Це залишить ваш 1-й термінал вільним для прокрутки назад і все одно дозволить вам дивитися вихід у режимі реального часу. Не елегантно, я знаю.
тердон

Відповіді:


53

Хоча я трохи запізнююся, я розміщую це тут, щоб кожен, хто сюди заходить, отримав рішення. Для мене рішення тієї ж проблеми було:

Налаштування термінатора -> Вкладка "Профілі" -> Прокрутка [вкладка "["] -> Зніміть прапорець "Прокрутка при виході".

Хороша річ у цьому варіанті - це те, що він все ще прокручуватиме висновок, коли ви знаходитесь в самому нижній частині виводу, але як тільки ви прокрутите вгору, він зупиниться і не буде турбувати вас, навіть якщо вихідний вміст все ще знаходиться згенеровано.

Я сподіваюся, що це допомагає


cool :) Чи можна створити ярлик для переключення цієї опції?
Йо Людке

1
Я трохи шукав, але не знайшов способу переключити його ярликом в термінаторі. Однак, оскільки параметр записаний у конфігураційному файлі термінатора у "$ HOME / .config / terminator / config", команді, яка перемикає та вимикає опцію безпосередньо у конфігураційному файлі, повинно бути можливим призначити глобальний ярлик.
Chikitulfo

4
Але внесення змін до конфігураційного файлу не вплине на вже запущені екземпляри термінатора, а скоріше вплине лише на нові екземпляри термінатора, запущені після редагування. Отже, якщо ви хочете переключити його на працюючий термінатор, вам доведеться це зробити вручну, afaik. У будь-якому випадку, якщо параметр переключено на помилкове, як тільки ви прокрутите до останнього рядка, воно продовжує автоматичну прокрутку на виході. Автоматичне прокручування зупиняється лише в тому випадку, якщо ви вручну прокручуєте вгору. Тому я не бачу реальної потреби вмикати та вимикати опцію.
Chikitulfo

1

tail -f log.txt | lessоновиться, щоб перейти до нової інформації, і ви можете потім піднятися вгору або вниз. Ви також можете використовувати lessфункції пошуку тощо. Методом труби ви також можете проаналізувати рухомий вихід.

І та ж ідея, але без труби: less +F log.txt.
(Це передбачає, що ви можете працювати зі своїм вмістом таким чином.)

Старий спосіб Unix полягав у тому, щоб зупинити Ctrl-S у своєму терміналі, щоб зупинити, а Ctrl-Q - перезапустити прокрутку виводу - це в основному те, що термінатор дозволяє вам робити stty ixon.
З доданими смугами прокрутки мені це здається досить пристойним - натисніть Control-S, прокрутіть вгору все, що вам подобається, а потім Control-Q, щоб повернутися вниз. Так, ви будете іноді забувати скасувати вихід.

Оскільки я надзвичайно ледачий, і тому, що мені подобається гнучкість перенаправлення виводу, я б використовував хвіст -f з трубою (якщо вважати, що це відповідає випадку). Тоді я можу зупинити це, стрілку вгору і додати щось на зразок грепу, і воно все ще працює: tail -f tac_plus.log | less | egrep 'peerip'

Киньте деякі catз і teeтам , і у вас є реальна сторона.


Я хотів використати це для специфікацій rspec - Проблема полягає в тому, що з хвостом / меншими підходами кольори втрачаються (вихід чорно-білий замість зеленого / червоного, якщо я запускаю команду безпосередньо)
Йо Людке,

@YoLudke Я не знайомий з rspec або як він забарвлюється. Існують способи передачі кольорів через grep тощо, але це може не спрацювати. Ви робите щось на кшталт запуску вказівки rspec на постійний / циклічний / тривалий процес, і отримуєте свій результат від цього?
belacqua
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.