Ansi-цветное редактирование файлов

Контекст

Имеются файлы стенограммы взаимодействия с терминалом, полученные с помощью традиционной команды Unix «сценарий».

Эти расшифровки содержат множество управляющих символов (например, пробел при редактировании команд оболочки) и множество последовательностей цветового кода в результате выполнения различных команд. Иногда запускались даже красочные полнотерминальные (на основе ncurses) приложения, такие как «emacs -nw» или «aptitude».

Во время выполнения программы переменная среды TERM была установлена ​​как «xterm».

Нужно 1: прочитать (более или менее решено)

Мне нужно снова прочитать эти файлы и иногда копировать и вставлять некоторые небольшие части.

Проблема в том, что хотя одно изменение цвета тут и там не так уж и проблема, их фактическая плотность делает вывод едва читаемым. Хуже того, отредактированные командные строки (с переходами курсора и отредактированными словами) совершенно нечитаемы.

«Хорошее» решение

Просмотрите файлы, используя, например. "меньше -r". При переходе вперед в той же настройке терминала воспроизводится другой цвет и стиль символов.

Но многие другие функции выходят более или менее сломанными, например. поиск в обратном направлении приводит к беспорядочному выводу терминала, часто приходится нажимать «Ctrl-L», чтобы очистить его.

Потребность 2: редактирование

Мой любимый редактор — emacs. У некоторых людей была похожая ситуация при запуске оболочки внутри emacs, например. Что-то не так с оболочкой Emacs.

Здесь не та ситуация. Примеры отличий: здесь нам не нужно запускать настоящий шелл, но нам нужно свободно перемещать курсор, как при обычном редактировании.

Редактировать здесь означает легко открыть такой файл стенограммы в редакторе, а затем:

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

person Stéphane Gourichon    schedule 13.03.2013    source источник
comment
Я попробовал emacswiki.org/emacs/AnsiColor и emacswiki.org/emacs/TtyFormat, но не получил удовлетворения.   -  person Stéphane Gourichon    schedule 14.03.2013
comment
Не могли бы вы дать ссылку на файл примера, пожалуйста?   -  person Thomas    schedule 14.03.2013
comment
Конечно. Фактические файлы содержат личные бизнес-данные, поэтому я создал образец, доступный на gourichon. .org/2013/ansi-colored-file-editing/ . Он показывает: цветную подсказку bash с информацией о системе, цвет ls, emacs -nw, aptitude и пример отредактированной командной строки. В качестве обходного пути для последнего случая у меня есть PROMPT_COMMAND, который повторяет командную строку перед запуском (см. строку с 1285). С уважением.   -  person Stéphane Gourichon    schedule 14.03.2013
comment
Я считаю, что меньше -R работает лучше, чем меньше -r.   -  person Zaq    schedule 24.05.2013
comment
по-видимому, ни один из обычных инструментов текстового скринкастинга (ttyrec, shelr, IPBT и т. д.) не имеет этой функции, но в любом случае они требуют ввода с отметками времени, которых script обычно нет. IPBT, вероятно, является самой близкой отправной точкой для редактора.   -  person sendmoreinfo    schedule 09.05.2016


Ответы (1)


Введите Alt-:, чтобы оценить что-то в минибуфере. Оцените (ansi-color-apply-on-region (point-min) (point-max)), и он преобразует цветовые коды ansi в цвета шрифта.

person Eric Ihli    schedule 29.06.2019