我有一个可以输出 JSON 和 YAML 的命令行程序。默认情况下,它会检测 pygments (pygmentize) 是否可用,如果可用,则将输出传递给它以获得漂亮的彩色输出。但是,默认情况下,大多数运行该程序的计算机上并未安装 pygments。但大多数计算机都会有 emacs 或 vim,但是却有。有没有办法让这些编辑器之一使用 ANSI 转义序列语法突出显示某些文本,然后再次输出?
因为编辑器已经可以做 ansi 的事情,所以很容易制作编辑器的屏幕截图,不是吗?
script -qc "stty rows 10000
emacs -nw -visit YOURFILE.YAML -eval '(redisplay t)' -f kill-emacs
resize"
(仅 GNU FSF Emacs 需要重新显示)
现在清理捕获
perl -p0E 's/\A(?s:.*)\e\[27m\r\n
\e\[A\n((?s).*?)
(?:\e\[K\n)+
\e.*\e\[27m\r$(?s:.*)\Z/$1/mx' < typescript
如果您不希望记录过程在屏幕上可见,您可以使用 perl 的 IO::Pty 之类的东西将其包装在隐藏终端中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)