Як зберегти історію прокрутки в byobu?


23

У мене був цікавий термінальний сеанс у byobu , і я хотів би зберегти висновок терміналу (команди та всі) у файл - як це зробити?

Відповідно до сторінки людини byobu :

Ctrl-a ~ - збереження буфера прокрутки поточного вікна

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

Відповіді:


21

Або ви можете просто скористатися гарячою клавішею Byobu для цього:

  • Shift-F7

Це займе вашу історію і помістить її в улюблений редактор. Тепер просто збережіть цей буфер у файл. Якщо ви перебуваєте в vi або vim, можете використовувати:wq /tmp/out


sift-F7 не робить нічого, і екран довідки byobu також не згадує - я використовую byobu 5.17 з tmux 1.6 в ubuntu.
drevicko

Це приголомшливо, врятувало мені багато часу!
Ctrl-C

1
Я працюю byobu 5.74, і ця опція з’являється для мене на екрані довідки і працює як описано. Я був би здивований, якби це не так, якщо врахувати, що Дастін - творець "Б'юбу". :) Варто згадати результат, який зберігається на $BYOBU_RUN_DIR/printscreen(як зазначено на екрані довідки).
Чуїм

2
Для мене це було збережено /dev/shm/byobu-serg-ucvwj2rJ/printscreen, де serg, очевидно, моє ім’я користувача
Sergiy Kolodyazhnyy

1
Я знаю, що це стара відповідь. У всякому разі, у мене виникає та сама проблема: shift-F7, здається, нічого не робить (навіть якщо ярлик присутній у меню довідки). Я використовую його на хості Ubuntu-16.04 з версією byobu 5.106 та tmux 2.1.
Марк

20

На старе запитання ще не відповіли працездатно, і я знову потрапив на потребу.

Цього разу я знайшов дієве рішення. Від man byobu:

SCROLLBACK, COPY, PASTE MODES

   Each  window  in  Byobu  has  up to 10,000 lines of scrollback history,
   which you can enter and navigate using the alt-pgup and alt-pgdn  keys.
   Exit  this  scrollback mode by hitting enter.  You can also easily copy
   and paste text from scrollback mode.  To do so, enter scrollback  using
   alt-pgup  or  alt-pgdn,  press the spacebar to start highlighting text,
   use up/down/left/right/pgup/pgdn to select the text, and press enter to
   copy  the  text.  You can then paste the text using alt-insert or ctrl-
   a-].
  1. Я натискаю, F7щоб увійти в режим прокрутки,
  2. Space щоб почати вибір,
  3. gg прокрутити до верхньої частини буфера (дякую @GeorgeMarian)
    • Якщо це не спрацює, спробуйте це: або з великою кількістю, Page upабо з :наступним найбільшим номером рядка (вказано вгорі праворуч), і Page upперейдіть до початку цієї сторінки
  4. Enter копіювати (до буфера обміну byobu, а не терміналу / системного),
  5. потім cat > my-byobu-dump.txtу терміналі,
  6. Alt+ Insertабо ctrl+ A+, ]щоб вставити (знову ж, із буфера обміну byobu)
  7. Ctrl+ Dзакрити файл.

Це була єдина відповідь, яка добре спрацювала для мене.
pjvandehaar

1
На кроці 3, якщо ви хочете отримати найкраще використання gg(як vim).
Джордж Маріан

@GeorgeMarian Чи знаєте ви, що це з режиму емуляції vim? люди знайдуть іншу поведінку? Здається, поведінка за замовчуванням (принаймні з byobu 5.17 над tmux 1.6)
drevicko

У режимі byobu немає режиму емуляції вим, який я знаю. У режимі прокрутки , а може і в іншому місці, є ві-подібні команди руху . Я просто випадково спробував їх, оскільки - ну - Linux. (Я lessостаннім часом багато використовую , шукаю і пересуваюся.)
Джордж Маріан

добре. чи може це виходити з основної технології мультиплексу (екран або tmux)? У всякому разі, я додав вашу пропозицію. Велике спасибі :)
drevicko

3

Shift + F7 працює, як очікувалося, якщо у вас є змінна середовище EDITOR, встановлена ​​в редакторі в межах byobu . Чомусь у деяких випадках (наприклад, для мене під час підключення через SSH до іншого комп'ютера) встановлення цієї змінної в ~/.profileнедостатньо. Одне місце, щоб встановити його так, щоб Byobu завжди читав, що він знаходиться ~/.bashrc. Скопіюйте щось таке ~/.bashrc:

# Although this is set in ~/.profile, it is set here as well so that in a 
# remote byobu session, Shift+F7 copies the output to a Vim buffer. See:
# /ubuntu/382750/how-to-save-scrollback-history-in-byobu
export EDITOR='vim'

У моєму випадку це не допомогло (насправді .bashrc - це те, де я встановив EDITOR уперед). Наскільки я можу сказати, мій емулятор термінала (програма для терміналів OSX за замовчуванням) не передає функціональні клавіші правильно - можливо, вирішується в налаштуваннях терміналу, але рішення ctrl-A для мене працюють нормально.
drevicko

1
@drevicko ах я бачу, добре знати. Ну, це добре, що ми збираємо декілька обхідних шляхів, щоб, сподіваємось, один із них працював для наступної людини, яка зіткнеться з цим питанням.
scottkosty


2

Якщо ви звикли не використовувати клавіші F, то це може працювати для вас:

  • Ctrl+ a, [Увійдіть в режимі скролінгу
  • Space увійти в режим копіювання (необов’язково)
  • Enter вийти з режиму прокрутки або копіювання
  • Ctrl+ a, ]: Вставити то , що було скопійовано

Також якщо ваша термінальна програма перехоплює F-клавіші;)
drevicko

1

Використовуйте Ctrl+ A+, ~щоб скопіювати буфер прокрутки до буфера обміну byobu.

Вставте текст у редактор за допомогою Alt+ insert або Ctrl+ A+ ].

(Налаштуйте Ctrl+, Aякщо ви змінили ключ відходу.)


У мене зараз працює тільки Mac, а ctrl-a ~ тоді ctrl-a] нічого не роблять - я підозрюю, що ctrl-a не робить його в byobu (що знаходиться на іншому кінці ssh тунель) .. Будь-які ідеї?
drevicko

0

Виберіть текст, який потрібно зберегти, а потім натисніть Control+ Shift + C Далі, відкрийте улюблений текстовий редактор. Потім вставити вміст сюди за допомогою Control+ V . Нарешті збережіть файл у потрібному місці.

ТЕРМІНАЛЬНИЙ ПОРАД ДНЯ: Коли ви намагаєтесь скопіювати щось у терміналі, зробіть це, як завжди, очікуйте використання Control+ Shift + Cзамість Control+ Cта вставте як завжди. Для вставки чогось із буфера обміну в термінал використовуйте Control+ Shift + V.


це просто проста схема копіювання пасти, буде витрачатися час на копіювання, а потім вставити. drevicko хоче це зробити через термінал або автоматично десь зберігає його.
Sukupa91

Хіба він не сказав, що я хотів би зберегти все у файл? Це, як він це робить.
Cammy_the_block

1
Ні, я вважаю, що ви просто на екрані коштуєте - не всю (можливо, 10000 рядку) історію прокрутки byobu ... Зауважте, що Byo зберігає історію терміналів, незалежну від додатка терміналу, який ви використовуєте.
drevicko

Якщо ви тримаєте мишку над вікном, вона прокручується вгору, щоб ви могли виділити всю річ.
Cammy_the_block

2
@Cammy_the_block вам не вистачає біта "byobu", подивіться його (ДУЖЕ зручна річ, якщо ви працюєте на віддалених серверах). У ньому зберігаються термінальні сеанси, від яких можна відключитись та пізніше підключитися до них. У мене є 10 000 рядків історії терміналів, які НЕ доступні місцевому додатку терміналу. Byobu (і бекенд, який він використовує: tmux або екран) мають власний набір команд, керованих клавіатурою, для доступу до цієї історії.
drevicko

0

Ctrl+ A+ ]працюватиме, якщо ви введете від 1 до 20 разів або більше за допомогою abracodabra. Але єдина команда буде працювати без головного болю. Вставте текст з буфера в термінал або файл. І переможець Alt+ Ins., Привітайтеся з Byobu - це програмне забезпечення GPLv3, автором якого є і підтримує Дастін Кіркланд.


0

Якщо вам потрібно зберегти історію, скористайтеся Shift + F7ярликом. Як каже @ dustin-kirkland .

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

  1. Екран:

    • CTRL + a: Якщо ви користуєтесь [тоді, ви переходите в режим прокрутки, як каже @ ikar-pohorský .
  2. Tmux:

    • ALT + PageUp: ви прокручуєте вгору.
    • ALT + PageDown: ви прокручуєте вниз.

Довідка Byobu F1

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