Как сохранить содержание Терминала GNOME с управляющими кодами ANSI?

Терминалы VT100 имеют относительно простой способ сохранить терминальное содержание с управляющими кодами в файл с помощью Meta-p:

XTerm.VT100.printAttributes: 2
XTerm.VT100.printerCommand: cat - > file
XTerm.VT100.translations: #override Meta <KeyPress> P: print() \n

Я озирался вполне немного и не могу найти, что решение для этого работает в Терминале GNOME по умолчанию + XTerm + Bash.

Я не хочу просто изображение с содержанием окна.

Похоже, что Терминал GNOME мог бы в конечном счете получить фиксацию для этого, но нет никакой информации, о которой версии это будет включено в, и это были почти три года начиная с последнего обновления...

9
задан 30 August 2012 в 17:51

6 ответов

К сожалению, l0b0 ответ из поля: Это не возможно.

В моем другом ответе, я перечислил, как использовать сценарий, чтобы сделать это, хотя существуют некоторые различия, как Вы отметили. Другой путь состоит в том, чтобы скомпилировать источник или использовать нестабильную версию.

источник Tarball

Терминала Gnome версия в Полном нетерпения 3.6.1, таким образом, можно посмотреть на этот источник. В Терминале-window.c на строке 115:

/*
 * We don't want to enable content saving until vte supports it async.
 * So we disable this code for stable versions.
 */

#include "terminal-version.h"

#if (TERMINAL_MINOR_VERSION & 1) != 0
#define ENABLE_SAVE
#else
#undef ENABLE_SAVE
#endif
#endif

Опции:

  1. Добавляют #define ENABLE_SAVE под этим.
  2. Изменяют версию к нестабильному.
  3. Загрузка нестабильная версия.DEB.

Hope это помогает.

3
ответ дан 21 October 2019 в 11:51

К сожалению, l0b0 ответ из поля: Это не возможно.

существует два способа, которыми можно попытаться исправить это путем запущения скрипта в любом случае на терминале и входа всего вывода. Откройте терминал гнома, перейдите в Редактирование -> Предпочтения Профиля , затем Заголовок вкладки и Команда и для Вашей пользовательской команды используют это:

bash -l -c 'script -q -c bash $HOME/sessionlogs/$BASHPID.sessionlog.$(date +%Y%m%d-%H%M).txt'

Удостоверяются, что 'sessionlogs' существует под $HOME.

другой путь был удален и добавлен как второй ответ по этому вопросу.

3
ответ дан 21 October 2019 в 11:51

Можно выполнить оболочки через сценарий (1) для получения всего ввода и вывода терминала, сохраненного в файле, включая терминальные Escape.

0
ответ дан 21 October 2019 в 11:51

Существует пакет, который это назвало экран - оконечный мультиплексор с эмуляцией терминала VT100/ANSI.

Согласно страница справочника экран на веб-сайте Руководств Ubuntu , экран утверждает, что был

полноэкранный менеджер окон, который мультиплексирует физический терминал между несколькими процессами (обычно интерактивные оболочки).Each, виртуальный терминал обеспечивает функции терминал DEC VT100 и, кроме того, несколько функций управления от ISO 6429 (ECMA 48, ANSI X3.64) и стандарты ISO 2022 (например, вставьте/удалите строку и поддержку нескольких наборов символов), оконечный мультиплексор с эмуляцией терминала VT100/ANSI'.

и при выполнении экран :

Ctrl h (бумажная копия) Запись бумажная копия текущего окна в файл "hardcopy.n".

я попробовал в Терминале GNOME, работая screen и введя Ctrl h

running screen and typing Ctrl Alt h

, Это - вывод моего файла бумажной копии 1 при открытии в Gedit:

hardcopy.1 opened in Gedit

можно найти , экран находится в репозитории программного обеспечения полном нетерпения/основном Ubuntu 13.04.

, Это не установлено по умолчанию.

0
ответ дан 21 October 2019 в 11:51

Гм, это не скопирует управляющие коды, но только захватить текст, можно перейти к меню Edit-> Select All, затем нажать Ctrl Сдвиг C и любая (i) вставьте буфер обмена редактору или (ii) тип cat > filename и нажатие Ctrl Сдвиг V .

-1
ответ дан 21 October 2019 в 11:51

man history ищут расширение истории для завершенных символов. Я верю history, может сделать то, что Вы спрашиваете.

-1
ответ дан 21 October 2019 в 11:51

Другие вопросы по тегам:

Похожие вопросы: