我是Emacs lisp编程新手。我对方案有一点经验,所以我理解一般的lisps的大概情况。但是,我只使用了方案的“纯功能”子集,不知道如何去做实际的工作。在emacs中评估Elisp
现在写信,我知道C-x C-e
将评估由当前光标位置括号括起来的代码。
我希望从i = 1循环到10并打印i的值。这是如何完成的?我试过以下内容:
(defvar i 1)
(while (< i 11)
(print "i: " i)
(setq i (+ i 1)))
Emacs告诉我:invalid function 0
。
- 我该如何正确地做到这一点?
- 为什么emacs的告诉我
invalid function 0
随意给我关于如何使用临时缓冲区提示(我只知道C-x C-e
求值)在Emacs。感谢所有的帮助!
EDIT1:有人能告诉我如何使用while循环打印出i
的连续值吗?
编辑2:当我评估代码时,它打开另一个微小的缓冲区,每次显示一个值为i
。但是,它不是一个大缓冲区,只显示从13到19的值为i
。当我尝试进入该缓冲区时,它立即关闭。我如何“滚动”通过这个微小的缓冲区?请注意,我使用emacs 24.3通过终端
编辑3:我发现微小的缓冲区是消息缓冲区。有没有更好的方法来查看我的elisp代码的输出? Messages缓冲区充满了评估emacs中的东西的其他垃圾。
'C-h i g(eintr)RET'开头,一般是'C-h i g(elisp)'。 (在信息阅读器中用'h'来学习如何使用它。) – phils