Pet*_*ter 4 emacs syntax-highlighting
我想在某种批处理模式下使用emacs来仅以语法突出显示和退出来呈现文件。具体来说,我想用ANSI转义码转储带字体的缓冲区,以便它在终端上以合理的语法显示。有什么办法吗?
在ANSI-lpr.el库似乎是一种沿着我想要的线,但输出不colorified。我想不通如何克服最后的障碍-有很多模块可以将ANSI转义代码消化为Emacs文本属性(例如ansi-color.el),但是我还没有发现任何相反的方法。如果有人能指出我的所作所为,我想我可以将其余的内容拼凑起来。
另外,我也看到了一些像这样的答案(使用script和捕获输出)的方法,但在我的实验中,这种方法似乎不太可能奏效-您会在突出显示的文本中混入大量不良控制序列。
这里的首要动机是在$LESSOPEN分页文件时在管道中使用emacs 来突出显示语法。如果您要说的话,我已经尝试过了,“仅Emacs中的页面文件”对我来说是不可接受的。
我很高兴地宣布一个新软件包e2ansi,(希望)能完成您所要求的。
该软件包提供了一个命令行工具e2ansi-cat,该工具可以以批处理方式启动Emacs,打开文件,语法突出显示它们(使用字体锁定),并创建ANSI彩色版本的语法突出显示的文件。
您可以less通过将以下变量设置为例如将其集成到其中:
export "LESSOPEN=|emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-R"
export MORE=$LESS
Run Code Online (Sandbox Code Playgroud)
最终结果如下所示:

您可以使用适当的Emacs主题来更改颜色和属性,例如粗体,下划线和斜体。
e2ansi软件包位于https://github.com/Lindydancer/e2ansi
感谢您发布此问题,它直接激发了我写e2ansi的灵感。
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |