scheme - 如何以编程方式在 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
编程方式调用?
解决方案
显然,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)
推荐阅读
- spring-boot - 在 docker 中与 Zipkin 和 kafka 一起使用时找不到 zipkin2.reporter.Sender bean
- javascript - Firebase 云功能已部署但不执行任何操作
- python - 在 sheet/DF 中打开 URL 列表并将新 URL 保存回 sheet/DF
- lua - 在数学环境中评估 Lua 中的表达式
- vba - 如何使用 vba 查找多个项目,然后使用这些值来计算动态数据集的变化?
- python - 如何使用 tensorflow_datasets (tfds) 实现和理解预处理和数据扩充?
- entity-framework-core - SqlServerMetadataExtensions.SqlServer 用于 EntityFrameworkCore 3.x
- java - 膨胀 android.support.v7.widget.CardView 时出错
- r - 仅当标签在r Shiny中活动时仅运行代码(以减少加载时间)
- laravel - Laravel 错误参数 1 传递给 Illuminate\Database\Connection::prepareBindings() 必须是数组类型,给定字符串