首页 > 解决方案 > 如何以编程方式在 Edwin 中为 MIT-Scheme 调用 Mx 函数?

问题描述

我正在使用带有 MIT-scheme 的 Edwin 编辑器,并且因为默认字体大小太小,所以我这样做M-x set-font然后选择

-adobe-courier-bold-r-normal--24-240-75-75-m-150-iso8859-1

使字体更大。这很好用,但是当我尝试放

(set-font "-adobe-courier-bold-r-normal--24-240-75-75-m-150-iso8859-1")

在我的~/.edwin,它抱怨Unbound variable: set-font

在 emacs 中,M-x通常可以在 Elisp 中以编程方式直接调用 from 的交互函数,但这里显然不是这样。我尝试通过使用“info mit-scheme-user”查看手册来阅读有关如何自定义 Edwin 的更多信息,但 Edwin 章节特别指出

本手册不讨论 Edwin 的定制。

如何以set-font编程方式调用?

标签: schememit-schemeedwin

解决方案


显然,Edwin 命令不是过程,不能在 Scheme 代码中直接调用。然而,一个简单的修复可以实现这一点,只需用ref-command宏包装它:

`((ref-command set-font) "-adobe-courier-bold-r-normal--24-240-75-75-m-150-iso8859-1")`

资料来源:一个 1997 年的邮件列表线程与这个完全相同的问题

Edwin 命令不是过程(与 GNU Emacs 不同)。Edwin 命令是一个具有不寻常名称的特殊对象。如果要从程序中调用命令,则必须使用 REF-COMMAND 宏。例如,要启动一个 shell 缓冲区,就像您输入了“Mx shell”一样:((ref-command shell) #t)


推荐阅读