VHS(Visual HyperScript)是一个用于创建终端录制脚本的工具,它可以生成可执行的命令序列,以便在终端中模拟用户的操作。通过使用VHS,用户可以记录和重放终端会话,包括命令输入、按键操作、以及显示效果等。VHS允许用户设置各种终端属性,如字体大小、颜色主题、帧速率等,以便更好地控制录制的终端会话的外观和行为。录制的终端脚本可以导出为GIF、MP4、或WebM等格式,方便用户与他人分享和展示特定终端操作过程。这使得VHS成为一个有用的工具,特别适用于演示、教学、或记录终端操作流程的场景。

plaintext

# VHS 文档
#
# 输出:
#   Output <路径>.gif               在给定的 <路径> 创建一个 GIF 输出
#   Output <路径>.mp4               在给定的 <路径> 创建一个 MP4 输出
#   Output <路径>.webm              在给定的 <路径> 创建一个 WebM 输出
#
# 要求:
#   Require <字符串>                确保程序在 $PATH 上以继续
#
# 设置:
#   Set FontSize <数字>             设置终端的字体大小
#   Set FontFamily <字符串>         设置终端的字体系列
#   Set Height <数字>               设置终端的高度
#   Set Width <数字>                设置终端的宽度
#   Set LetterSpacing <浮点数>       设置字体的字距
#   Set LineHeight <浮点数>          设置字体的行高
#   Set LoopOffset <浮点数>%         设置 GIF 循环的起始帧偏移
#   Set Theme <json|字符串>         设置终端的主题
#   Set Padding <数字>              设置终端的内边距
#   Set Framerate <数字>            设置录制的帧速率
#   Set PlaybackSpeed <浮点数>      设置录制的播放速度
#   Set MarginFill <文件|#000000>   设置将填充边距的文件或颜色。
#   Set Margin <数字>               设置边距的大小。如果未设置 MarginFill,则无效。
#   Set BorderRadius <数字>         设置终端的边框半径,以像素为单位。
#   Set WindowBar <字符串>          设置窗口栏类型。 (其中之一: Rings, RingsRight, Colorful, ColorfulRight)
#   Set WindowBarSize <数字>        设置窗口栏大小,以像素为单位。默认值为 40。
#   Set TypingSpeed <时间>          设置终端的打字速度。默认值为 50ms。
#
# 休眠:
#   Sleep <时间>                    休眠一定的时间,单位为秒
#
# 输入:
#   Type[@<时间>] "<字符>"          在终端中输入 <字符>,每个字符之间有 <时间> 的延迟
#
# 按键:
#   Backspace[@<时间>] [数字]       按下退格键
#   Down[@<时间>] [数字]            按下向下键
#   Enter[@<时间>] [数字]           按下回车键
#   Space[@<时间>] [数字]           按下空格键
#   Tab[@<时间>] [数字]             按下制表键
#   Left[@<时间>] [数字]            按下左箭头键
#   Right[@<时间>] [数字]           按下右箭头键
#   Up[@<时间>] [数字]              按下上箭头键
#   Down[@<时间>] [数字]            按下下箭头键
#   PageUp[@<时间>] [数字]          按下 Page Up 键
#   PageDown[@<时间>] [数字]        按下 Page Down 键
#   Ctrl+<键>                      按下控制键 + <键> (例如 Ctrl+C)
#
# 显示:
#   Hide                            隐藏后续的命令输出
#   Show                            在输出中显示后续的命令

Output examples/demo.gif

Require echo

Set Shell "bash"
Set FontSize 32
Set Width 1200
Set Height 600

Type "echo '欢迎使用 VHS!'" Sleep 500ms  Enter

Sleep 5s