【发布时间】:2010-07-06 08:38:23
【问题描述】:
我想使用 Emacs 自动执行涉及字体锁定模式的工作。我想对文件进行字体化,然后使用字体锁定模式的颜色将其转换为 HTML。问题是 Emacs 拒绝对文件进行字体化,除非它认为它正在终端中运行。换句话说,它在-batch 下运行时不会字体化。有没有办法让 Emacs 认为它在终端内运行,即使它是以编程方式运行的?
【问题讨论】:
我想使用 Emacs 自动执行涉及字体锁定模式的工作。我想对文件进行字体化,然后使用字体锁定模式的颜色将其转换为 HTML。问题是 Emacs 拒绝对文件进行字体化,除非它认为它正在终端中运行。换句话说,它在-batch 下运行时不会字体化。有没有办法让 Emacs 认为它在终端内运行,即使它是以编程方式运行的?
【问题讨论】:
Advanced Programming in the Unix Environment为书中所有源代码提供了一个src.tar.gz; 'pty' 目录包含用于创建 pty 主/从程序的示例代码,它可以伪造 tty 的存在。我使用 cron 对此进行了测试:
* * * * * /tmp/apue.2e/pty/pty /usr/bin/tty > /tmp/pty.out 2> /tmp/pty.err
* * * * * /usr/bin/tty > /tmp/tty.out 2> /tmp/tty.err
而且输出令人满意:
==> /tmp/pty.out <==
/dev/pts/5
==> /tmp/tty.out <==
not a tty
至少足以欺骗 tty。 :)
【讨论】:
使用-batch参数怎么样?
【讨论】:
expect 程序解决了这个问题,如上所述。不幸的是,它使整个事情有点慢。你是对的,我正在使用 htmlize.el,但除非它连接到终端(对我来说,无论如何),否则它不起作用。您需要更多详细信息吗?