我正在使用emacs而且我编写了一个使用“current-buffer”的脚本。但是,emacs系统无法识别“当前缓冲区”。当我尝试“M - x current-buffer”时,我得到了回复:
不匹配
:知道我做错了吗?
答案 0 :(得分:6)
current-buffer
不是互动功能。也就是说,不能像您尝试的那样通过M-x
以交互方式调用。您可以使用eval-expression
直接执行非交互式lisp代码,如下所示:
M-: (current-buffer) RET
请注意,您必须输入正确的lisp表达式。如果你想捕获变量中的值,就像这样
M-: (setq xyzzy (current-buffer)) RET
会将当前缓冲区存储到变量xyzzy
。
答案 1 :(得分:2)
我是否正确地解释您已创建了一个名为current-buffer
的函数,并希望M-x current-buffer
可以使用该函数?
要使M-x function-name
调用函数,需要将函数标记为交互式。
来自emacs manual的示例:
(defun multiply-by-seven (number) ; Interactive version.
"Multiply NUMBER by seven."
(interactive "p")
(message "The result is %d" (* 7 number)))
(interactive "p")
部分使迷你缓冲区中的函数可以调用(通过M-x
)。
答案 2 :(得分:0)
我听起来你也想知道如何以交互方式获取当前缓冲区的名称。使用M-: (buffer-name)
。