Як зберегти історію прокрутки в 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.