【发布时间】:2014-12-08 23:41:06
【问题描述】:
我是 emacs lisp 的新手。今天我想写一个emacs lisp函数来列出我打开的文件 (即与文件相关的缓冲区)并使它们可点击,但我在理解插入按钮功能时遇到问题。
这是我的代码。
(require 'dash)
(require 'button)
(defun insert-button-for-buffer (buf)
(insert-button (buffer-name buf)
'action (lambda (x) (display-buffer (get-buffer buf)))))
(-map 'insert-button-for-buffer
(-filter (lambda (buf) (buffer-file-name buf))
(buffer-list)))
这段代码不起作用。我猜(显示缓冲区(get-buffer buf))。 lambda 函数中的变量只是没有得到正确的值。我知道 Overlay 中 lambda 中的 x 参数。但是如何从 x 变量中获取缓冲区名称?或者有没有更好的方法来实现这个目标?这个问题可能看起来很愚蠢。希望大家帮忙。
【问题讨论】: