这个Stack Overflow回答告诉我,我可以设置Emacs的字体大小set-face-attribute
:
(set-face-attribute 'default nil :height 100)
Run Code Online (Sandbox Code Playgroud)
这些评论表明您不能运行set-face-attribute
使用M-x:
相反,你必须运行它M-::
为什么有些命令,例如set-face-attribute
,不可用M-x?
Ror*_*ane 32
execute-extended-command
,它允许您键入命令的名称并运行它.eval-expression
,它允许您键入包含函数调用的任意S表达式并对其进行求值.您可以调用的函数M-:用于实现Emacs功能,自定义(例如在您的.emacs
)和插件中.函数参数通常通过在S表达式中调用函数来传递.
如果任何函数在其定义中具有表单,则它也可以是命令interactive
.该interactive
表单描述了函数在作为命令调用时应如何获取其参数.例如,如果函数(interactive "bGive me a buffer: ")
在其定义中具有,则该函数将可调用M-x.当用户调用函数时M-x,Emacs将提示用户输入缓冲区名称(因为b
),并且它们键入的名称将作为参数传递给函数.
使函数成为命令的目的是让最终用户轻松调用它,而不仅仅是Emacs Lisp程序员.命令(运行M-x)更容易以这些方式以交互方式运行:
()
,使其成为有效的S表达式.interactive
表单的代码字符(如b
)指定了期望的输入类型.你不能调用函数的原因set-face-attribute
有M-x是,它的定义不包含的interactive
形式,所以set-face-attribute
不是命令.您必须在S表达式中将其称为普通函数.您可以使用迷你缓冲区M-:,或通过其他任何方式评估代码.
Emacs Mini手册→概念→命令对正常功能和命令之间的区别有一个简短的,措辞不同的解释.Emacs函数和命令之间的关系解释了这个答案中没有的一些细节.
归档时间: |
|
查看次数: |
3275 次 |
最近记录: |