gpt4 book ai didi

emacs - emacs 启动进程输出缓冲区中的 ANSI 着色

转载 作者:行者123 更新时间:2023-12-01 00:26:45 27 4
gpt4 key购买 nike

我正在 emacs 中运行一个进程,该进程在其输出中使用 ANSI 颜色代码。

我正在使用 start-process创建进程,并为进程的输出提供自定义缓冲区名称

(start-process "foo" "*Foo*" foo-command foo-args)

如果我打开 *Foo*缓冲区,ANSI 颜色代码以其原始格式打印到缓冲区
^[[36msome output message^[[m
^[[1;35msome output message^[[m
^[[1;34msome output message^[[m

我在 this SO answer 看到可以向缓冲区添加着色;但是我不确定如何使用使用 start-process 创建的缓冲区来做到这一点。

是否可以在我的 *Foo* 中将这些 ANSI 颜色代码转换为彩色输出缓冲?

最佳答案

看起来链接的答案没有任何不涉及 comint-mode 的解决方案.您可以使用 ansi-color-apply-on-region为输出缓冲区着色,例如。

(set-process-sentinel
(start-process "foo" "*Foo*" foo-command foo-args)
(lambda (p _m)
(when (eq 0 (process-exit-status p))
(with-current-buffer (process-buffer p)
(ansi-color-apply-on-region (point-min) (point-max))))))

关于emacs - emacs 启动进程输出缓冲区中的 ANSI 着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44348443/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com