Доступ к буферу прокрутки xterm в виде файла

8

Можно ли каким-то образом получить доступ к буферу прокрутки xterm в виде файла (только для чтения) или символьного устройства?

Основная проблема (чтобы избежать х / у "проблемности") заключается в следующем: иногда команда, которую я только что выполнил, создает недетерминированный вывод, и я хотел бы как-то использовать ее вывод, не задумываясь об этом. , Прямо сейчас, единственный способ сделать это (о чем я знаю) - использовать мышь, чтобы выделить текст в основной выбор.

Джон З.
источник
Альтернатива использованию tee. Рассматривали ли вы запуск scriptдля создания журнала всех ваших команд в файл?
Стивен Куан

Ответы:

6

Вы можете сделать это, сказав xterm распечатать данные, используя print-everythingдействие (обычно не привязанное к ключу).

В качестве альтернативы есть управляющая последовательность, задокументированная в управляющих последовательностях XTerm :

CSI ? Pm i                                                                      
          Media Copy (MC), DEC-specific.                                        
            Ps = 1  -> Print line containing cursor.                            
            Ps = 4  -> Turn off autoprint mode.                                 
            Ps = 5  -> Turn on autoprint mode.                                  
            Ps = 1  0  -> Print composed display, ignores DECPEX.               
            Ps = 1  1  -> Print all pages.

который может быть вызван как

printf '\033[?11i'

Но любой из этих подходов (для записи в файл) потребует настройки команды PrinterCommand .

Томас Дики
источник
Возможно ли это сделать без перезапуска xterm? Если это требует перезапуска xterm, это не совсем ответ, так как это приведет к потере вывода.
Касперд
Это то, что я искал. Ресурсы могут быть перезагружены на лету, и я в порядке, чтобы перезапустить xterm. Я создал названный fifo и настроил его в printerCommand, связал команду print-everything с ключом, и она работает именно так, как я хотел.
Джон З.
2

Вы всегда можете использовать что-то вроде tmux, которое обеспечивает capture-paneто, что вы хотите, наряду с разбиениями (вертикальным и горизонтальным) и мультиплексированием, поддержкой сеансов и множеством других вещей.

Или использовать другой эмулятор терминала xfce4-terminalтакже легкий и обеспечивает легкийSave Contents

Эван Кэрролл
источник
1
Для меня это не похоже на ответ на вопрос. Ни одна из этих программ не может волшебным образом захватить выходные данные, которые на данный момент существуют только в окне xterm.
Касперд
@ kasperd справедливая интерпретация. Он хочет что-то, что захватывает без предварительной мысли. Я пользуюсь tmuxбез предварительной мысли. Тогда у меня нет этой проблемы. Если вы можете привыкнуть использовать tmux, вам больше никогда не придется об этом думать (или много чего другого).
Эван Кэрролл