как программно вызывать функции Mx в Edwin для MIT-Scheme?
Я использую редактор Edwin со схемой MIT, и, поскольку размер шрифта по умолчанию очень мал, я использую 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, но, по-видимому, здесь не так. Я попытался прочитать больше о том, как настроить Эдвина, просмотрев руководство с помощью ʻinfo mit-scheme-user ', но в главе об Эдвине конкретно говорится
В этом руководстве не обсуждается настройка Эдвина.
Как мне позвонить set-font
программно?
1 ответ
Очевидно, что команды Edwin не являются процедурами и не могут быть вызваны непосредственно в коде схемы. Однако простое исправление позволяет это сделать, просто оберните егоref-command
макрос:
`((ref-command set-font) "-adobe-courier-bold-r-normal--24-240-75-75-m-150-iso8859-1")`
Источник: цепочка рассылки 1997 года с тем же вопросом.
Команды Edwin не являются процедурами (в отличие от GNU Emacs). Команда Эдвина - это особый объект с необычным названием. Если вы хотите вызвать команду из программы, вы должны использовать макрос REF-COMMAND. Например, чтобы запустить буфер оболочки, как если бы вы набрали "Mx shell":
((ref-command shell) #t)