Вопрос или проблема
Я хочу записать гиф с взаимодействием моего инструмента на Linux (REPL), но это занимает много времени, чтобы сделать это идеально без ошибок, когда я ввожу команды.
Я думал о том, чтобы использовать команду script и затем отредактировать ее позже, но, вероятно, я сломаю скрипт, если попробую его отредактировать.
Есть ли какие-либо инструменты, которые позволяют редактировать сессию и тайминг из команды script? Или, может быть, что-то, что позволит мне написать код, который будет автоматизирован в оболочке с визуальной обратной связью?
Я спросил ChatGPT, и он предложил использовать expect, но вывод не выглядит хорошо. Он может автоматизировать один исполняемый файл (мою программу), но не покажет приглашение оболочки, как я ввожу имя программы и выполняю ее.
ChatGPT также предложил использовать asciinema, но он лишь анимирует фиксированный текст. А я хочу анимировать взаимодействие с оболочкой.
Asciinema поддерживает запись полных взаимодействий — все, что вы можете записать с помощью script
, вы можете записать с помощью Asciinema.
Записи Asciinema легче редактировать, чем записи script
; см. этот раздел часто задаваемых вопросов для подробностей (это все еще включает в себя ручное редактирование файла, но это JSON-файл, и вам не нужно настраивать тайминги).
При записи демо на терминале мне легче подготовить все команды в файле, а затем скопировать/вставить их в терминал! Это позволяет избежать опечаток и заставляет зрителей ждать, пока я ввожу команды по одной букве за раз.
Ответ или решение
Вопрос о редактировании команд, записанных с помощью команды script
, действительно оставляет открытые возможности для улучшения процесса записи демонстраций в терминале. Давайте рассмотрим несколько методов и инструментов, которые могут помочь исправить опечатки и упростить процесс записи взаимодействия с вашим инструментом на Linux.
1. Использование Asciinema
Одним из наиболее эффективных инструментов для записи взаимодействия в терминале является Asciinema. Он позволяет записывать все действия, выполненные в терминале, включая ввод команд и их вывод. Преимущества Asciinema заключаются в следующем:
- Поддержка интерактивности: В отличие от
script
, Asciinema позволяет записывать полное взаимодействие, что обеспечивает высокое качество конечного продукта. - Редактирование записей: Записи Asciinema сохраняются в формате JSON, что делает их легче редактируемыми. Вы можете вручную исправлять текст и изменять временные метки, не ломая структуру записи.
- Простота использования: Запустить Asciinema можно просто, введя команду
asciinema rec filename.cast
, и образы координат корректировки просты и интуитивно понятны.
Рекомендация: Используйте Asciinema вместо script
, так как он предлагает более гибкие возможности для последующего редактирования.
2. Подготовка команд в файле
Для минимизации количества опечаток и сокращения времени записи полезно заранее подготовить команды в текстовом файле. Это позволит избежать ошибок ввода и сделать процесс записи более эффективным. Вы можете просто копировать и вставлять команды из подготовленного файла в терминал. Это экономит время и избавляет от необходимости постоянно редактировать записанные команды.
3. Альтернативные инструменты
Помимо Asciinema, существуют и другие инструменты, которые могут стать полезными в вашем случае. Вот некоторые из них:
- Term-record: Этот инструмент позволяет записывать сессии терминала с возможностью последующего просмотра и редактирования. Однако он может потребовать больше усилий для начального понимания и настройки.
- Screen или tmux: Эти утилиты позволяют вести сессии терминала, которые можно сохранять и предпросматривать. Хотя они не предлагают редактирования записей в том же смысле, что Asciinema, они могут быть полезны для быстрой работы с многими командами в пределах одной сессии.
Заключение
Чтобы добиться наилучших результатов при записи ваших взаимодействий в терминале, рекомендуется использовать Asciinema с предварительно подготовленными командами. Это сводит к минимуму количество опечаток и позволяет легко редактировать записи. Помните, что подготовка к записи также имеет значение: продуманные команды и сценарии обеспечивают более плавную презентацию и меньше стресса во время записи.
Если у вас будут дополнительные вопросы или требуется углубленная помощь с использованием какого-либо из вышеупомянутых инструментов, не стесняйтесь спрашивать. Успехов в ваших проектах!