Доступ к буферу прокрутки 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, вам больше никогда не придется об этом думать (или много чего другого).
Эван Кэрролл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.