3

在 EShell 中是否可以进行多行输入?当我想在 EShell 的命令行中快速定义函数时,它并没有真正起作用。我尝试使用显式换行符 (\n),以及单引号 ('') 和双引号 (""),但没有成功。

当我写一个换行符\n并按回车键(点在位置 *)时,我收到一条错误消息和一个新的 eshell 提示。

$ (def foo (x y ) \n *)
Symbol's function definition is void: def

当我使用C-q C-j并按 Enter 键(点位于 * 位置)时,我收到相同的错误消息和新的 eshell 提示。

$ 
(def foo (x y) *)
Symbol's function definition is void: def
4

2 回答 2

0

您必须保留一个括号以防止 Eshell 过早地评估输入。此外,正如 phils 所指出的,def在股票 Elisp 中没有定义;你可能想要defun

于 2011-06-03T13:09:16.177 回答
0

没有(def)

在 elisp 中,您使用(defun).

C-hf defun RET

http://www.gnu.org/software/emacs/manual/html_node/elisp/Defining-Functions.html

于 2011-06-04T05:03:15.083 回答