1

我想在 emacs 中创建一个函数,该函数将创建一个新帧,然后在该新帧中获取缓冲区列表。我试过这个:

(defun get-buffer-menu-in-new-frame (arg)
(make-frame)
(switch-to-buffer-other-frame ( list-buffers)))

我在 init.el 工作。我添加了这个来称呼它:

(get-buffer-menu-in-new-frame)

然后我运行“eval-buffer”。这似乎奏效了:我得到了新框架,其中包含缓冲区列表(我希望这个结果不是巧合。

但后来我尝试了这个:

(global-set-key (kbd "<f4>") 'get-buffer-menu-in-new-frame)

然后我按了function4键,但我得到了:

recursive-edit: Wrong type argument: commandp, get-buffer-menu-in-new-frame

我究竟做错了什么?

4

1 回答 1

4

您需要使用interactive.

(defun get-buffer-menu-in-new-frame ()
  (interactive)
  (switch-to-buffer-other-frame (list-buffers-noselect)))

我还删除了未使用的 arg。

于 2012-08-17T22:38:14.523 回答