我想在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
我做错了什么?
答案 0 :(得分:4)
您需要使用interactive
将您的功能变为命令。
(defun get-buffer-menu-in-new-frame ()
(interactive)
(switch-to-buffer-other-frame (list-buffers-noselect)))
我还删除了未使用的arg。