Копіювання буфера прокрутки екрану GNU у файл (розширена тверда копія)


188

Як легко скопіювати буфер прокрутки екрану GNU у файл? Тобто, більш потужна версія команди «копіювання»?

На екрані GNU я можу використовувати " Ctrl+ A Esc", щоб ввести буфер прокрутки. Тоді я міг би позначити весь буфер і використовувати " Ctrl+ A Ctrl+ ]", щоб вставити його у буфер Emacs , таким чином зберегти його у файл.

Однак це нудно. Чи є команда Screen, яка просто скопіює буфер прокрутки у файл, як-от "тверда копія" для видимої частини екрана?

Відповіді:


284

Щоб записати весь вміст буфера прокрутки у файл, введіть

Ctrl+, Aа потім : перейти до командного режиму

hardcopy -h <filename>

У старих версіях screen, якщо ви просто це зробите hardcopy -h, він просто записує у файл -h. Це було виправлено у версії 4.2.0, тому hardcopy -hзаписує, hardcopy.Nде Nзнаходиться поточний номер вікна.


1
Зауважте, що файл зберігається в домашньому каталозі - принаймні, це зробило для мене. Дякую за відповідь, btw!
Ritesh

2
@allrite: Це зберігається в $ PWD (якщо ви не надаєте fullpath), особливої ​​поведінки немає.
Пушпендре

9
Так, але він зберігається в $ PWD, де ви почали екран. Не в $ PWD сесійного екрану.
seumasmac

7
Зауважте, що якщо у вас довгий буфер прокрутки і в ньому не так багато, збережений файл може видатися порожнім, оскільки перші десятки чи сотні рядків порожні, а вміст у кінці.
Террі Браун

3
Ще одне зауваження про місце збереження паперової копії: Якщо ви перейдете до каталогу та використовуєте screen -rдля повторного підключення до існуючого сеансу, паперова копія не зберігається до активного каталогу на екрані або до того, у якому ви були раніше screen -r. Я думаю, що це зберігається в каталозі, в якому ви були, коли ви вперше запустили сеанс екрана. Ви можете змінити це за допомогою команди hardcopydir .
Маттіас Фріпп

25

Натисніть Ctrl+ A : bufferfile /tmp/somefile.txt ENTER , а потім Ctrl+A >

Це запише поточний вміст буфера у названий файл.


Я спробував це, і "ctrl-a>" каже "нічого не сталося". Перший крок сказав: "Bufferfile зараз '/tmp/foo.txt'", але, схоже, навіть не створює цей файл.

1
Ви впевнені, що скопіювали щось у буфер екрану за допомогою Ctrl + A [? Здається, що ваш буфер може бути порожнім - він не скопіює весь буфер прокрутки, лише частину, яку ви вибрали за допомогою Ctrl + A [
Roshan,

2
Ах, я шукав ярлик, щоб скопіювати весь буфер, не використовуючи ctrl-a [

12

TL; DR: ^A:writebuf <filename>

ОП, здається, бажає способу використовувати обрану частину буфера, яку ви отримуєте при виконанні ^ A [, вибираючи текст, використовуючи пробіл, як початок і кінець, а потім замість використання ^ A], щоб вставити, збережіть отриману вибрану частину буфера до файлу.

Це спрацювало:

^A:writebuf <filename>

Примітка: одне 'f' у writebuf


1
Ні ні. ОП хоче зберегти цілий буфер, а не лише вибрану частину. - OP

2
Щури! Це дуже пропустило це
Кевін Мюллет,

4
Ця публікація все ще корисна. Хороша робота.
Джастін Е

1
Я виявив, що для того, щоб зробити цю роботу на екрані версії для MacOSX, мені довелося скористатися відміною шляху (тобто: /Users/user1/path/to/file.txt)
jhrf

6

Спробуйте hardcopy -hвключити весь буфер.


2
Це просто робить копію у файлі ~ / -h

2
@barrycarter: Це, можливо, змінилося в останніх версіях. Станом на екрані 4.03.01, hardcopy -hпише в hardcopy.N, де Nзнаходиться поточний номер вікна.
Кіт Томпсон

4

Це працювало для мене:

Введіть режим редагування ( ~) та введіть:

:hardcopy -h buff_file

Це створило величезний файл, із яких 98% було порожнім, але мої журнали були повністю присутні в інших 2%.


-2

Ctrl+ A, :і видайте команду "увійти".

Або встановіть його як за замовчуванням у вашому .screenrc файлі як "дефлогуватись увімкнено".


2
Я думаю, що це просто починає реєструвати все після запуску цієї команди. Я не хочу все реєструвати (занадто багатослівний). Я просто хочу захопити буфер прокрутки як файл.

-3

Do Ctrl+ A, H.

Це зберігає поточний екран в жорсткий файл копіювання, наприклад, hardcopy.0 на екран 0. Це , як видається, більш швидким способом , ніж йти Ctrl+ A, :і набравши друковану копію команди.


3
На жаль, це просто зберігає ВІЗАБІЛНУ частину екрану, а не буфер прокрутки.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.