Використовуйте термінальну прокрутку з tmux


40

Я знаю, як прокручувати tmux за допомогою клавіатури, але я помітив, що, схоже, існує спосіб використання смуги прокрутки терміналів за допомогою екрана GNU . Чи можна це зробити за допомогою tmux?


6
Ви дійсно не можете використовувати смугу прокрутки терміналів з екраном GNU. Панель прокрутки насправді не отримує доступ до буфера прокрутки екрану, але терміналу, що означає, що лінії прокрутки з різних сеансів екрана змішуються.
ak2

@ ak2 Сум ... але дякую за інформацію!
Джефф

2
iTerm2 має деякі майбутні плани [інтегруватись із tmux ] ( code.google.com/p/iterm2/wiki/TmuxIntegration ). Така інтеграція, ймовірно, включає в себе використання нативної смуги прокрутки для перегляду буфера історії tmux .
Кріс Джонсен

Відповіді:


41

Це можливо, як на екрані GNU, так і в tmux, і спосіб вирішення подібний: для того, щоб обдурити мультиплексори думати, що термінал не має режиму "альтернативного екрана" (такого, який використовується pico, mutt тощо). Це досягається встановленням команд termcap для сеансу.

Для екрана GNU помістіть це у свій .screenrc:

termcapinfo xterm*|xs|rxvt|terminal ti@:te@

а для tmux додайте це до свого .tmux.conf:

set -ga terminal-overrides ',xterm*:smcup@:rmcup@'

Частина команди ' xterm*' повинна бути встановлена ​​на те, що ваш термінальний емулятор оголошено як. Якась форма xterm - це гарна здогадка, але ви можете перевірити своє на більшості розумних * nix систем за допомогою:

echo $TERM

і зазвичай це можна встановити в налаштуваннях вашої термінальної програми (тобто для Apple Terminal.app, це в розділі Налаштування-> Профіль-> Додатково (або Налаштування-> Додатково-> Емуляція попереднього йосеміту) "Оголосити термінал як".

Кінцевим результатом є те, що переповнення закінчується в буфері прокрутки термінала, а не зникає. Звичайно, оскільки це один статичний буфер, все стане брудно, коли ви переходите між екраном або tmux вікнами, але це зручно для швидкого вгору, щоб побачити вихід lsкоманди чи іншого.


1
також щойно побачив superuser.com/questions/253414/… , що працює як інша альтернатива.
Doug J

Це не працює для мене на OS X ...
Нік

1
Рішення: gist.github.com/1297707
Нік

1
@Nick - Зауважте, що ви вирішуєте іншу проблему: додайте підтримку миші до tmux. Це може бути кращим рішенням для вас, але воно відрізняється від використання вбудованого буфера прокрутки. Поки ваш емулятор терміналу правильно визначений, вище буде працювати над y * nix, включаючи OSX
Doug J

1
цей «перелив» працює , але показує деякі дивні символи Юнікоду при виході з tmux: stackoverflow.com/q/31790939/2668831
Луї Maddox

5

Щоб увімкнути прокрутку, ви можете ввімкнути вбудований режим миші у ~/.tmux.confнаступному:

set -g mode-mouse on
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.