gpt4 book ai didi

emacs - 在批处理模式下使用 emacs 转储带有语法突出显示的文件?

转载 作者:行者123 更新时间:2023-12-02 06:03:58 25 4
gpt4 key购买 nike

我想在某种批处理模式下使用 emacs 来渲染带有语法突出显示的文件并退出。具体来说,我想转储带有 ANSI 转义码的字体化缓冲区,以便它在我的终端上以合理的语法突出显示。有什么办法可以做到这一点吗?

ansi-lpr.el库似乎有点符合我想要的,但输出没有着色。我不知道如何克服最后的障碍 - 有很多模块可以将 ANSI 转义码消化为 Emacs 文本属性(例如 ansi-color.el ),但我还没有找到任何相反的功能。如果有人能指出我能做的事情,我想我可以把剩下的拼凑起来。

或者,我见过一些像 this answer 这样的 hacky 方法。 (使用脚本并捕获输出)但在我的实验中,这种方法似乎不太可能取得成果——你会得到大量不需要的控制序列与突出显示的文本混合在一起。

这里的首要动机是在 $LESSOPEN 管道中使用 emacs,以便在分页文件时获得语法突出显示。如果你要这么说,我已经尝试过了,“仅 Emacs 中的页面文件”对我来说是 Not Acceptable 。

最佳答案

我很高兴宣布推出一个新软件包e2ansi,它(希望)能够满足您的要求。

该软件包提供了一个命令行工具e2ansi-cat,它以批处理模式启动 Emacs、打开文件、语法突出显示它们(使用字体锁定),并创建语法的 ANSI 颜色版本突出显示的文件。

您可以通过设置以下变量将其集成到 less 中,例如:

export "LESSOPEN=|emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-R"
export MORE=$LESS

最终结果如下所示:

Example

您可以改变颜色和属性,例如粗体、下划线和使用合适的 Emacs 主题显示斜体。

e2ansi 软件包位于 https://github.com/Lindydancer/e2ansi

个人备注

感谢您提出这个问题,它直接启发了我编写 e2ansi。

关于emacs - 在批处理模式下使用 emacs 转储带有语法突出显示的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24329865/

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