vim - 在命令行程序中使用 emacs 或 vim 的语法荧光笔?

标签 vim emacs syntax-highlighting pygments

我有一个生成 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 之类的东西将其包装在一个隐藏的终端中

关于vim - 在命令行程序中使用 emacs 或 vim 的语法荧光笔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13408134/

相关文章:

python - 无法在 vim 中启用 python3 支持

vim - 如何重新映射键绑定(bind)以将 vscode vim 扩展中的模式从插入模式更改为正常模式?

emacs - 如何在emacs中查看多行输出?

emacs - 如何检查与特定名称关联的 agda 术语是否依赖于 hole?

syntax-highlighting - Jekyll 中的语法高亮 Markdown 代码块(不使用 Liquid 标签)

eclipse - Eclipse Juno 的 JSP 编辑器

regex - 如何测试Emacs Lisp代码的`font-lock-keywords'值

vim - 按一个键查找其标识符

regex - Vim、正则表达式在所有缓冲区中搜索并替换字母大小写更改

emacs - 在 GNU Emacs 中,如何按模式设置背景颜色?