2

当我使用 define-skeleton 定义一个函数时,我可以在我的缩写表中为它创建一个缩写,

("abbrev_name" "" function_name nil)

但是,如果我使用 defun (需要争论),例如,

(defun function_name (arg)
   ""
   (interactive "sThe argument is")
   (insert arg)
 )

那么我仍然可以使用“Mx function_name”来调用它,但我无法使用缩写来调用它(我收到一条与错误数量的参数有关的错误消息)。我可以在这里使用一种解决方法吗?

4

2 回答 2

3

Emacs 用 0 个参数调用你的函数

代替

("abbrev_name" "" function_name nil)

用这个:

("abbrev_name" "" (lambda () (call-interactively 'function_name)) nil)

这样,emacs 会提示您在 minibuffer 中插入字符串。

于 2014-08-26T20:40:05.627 回答
0

让我们从您的实际问题开始:

(defun function-name ()
   (let ((arg (read-from-minibuffer ....)))
     ...))

现在,我认为您正在寻找的是骷髅

于 2014-08-26T20:15:46.023 回答