emacs制作帧切换缓冲区

时间:2012-08-17 22:33:13

标签: emacs

我想在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

我做错了什么?

1 个答案:

答案 0 :(得分:4)

您需要使用interactive将您的功能变为命令。

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

我还删除了未使用的arg。