书签中的书签设置问题+(emacs 24.5)

时间:2015-04-15 09:11:10

标签: emacs bookmarks

Emacs在bookmark-set上引发“funcall:Symbol的值作为变量为void:choices”。

禁用书签+后,书签设置开始正常工作。

有没有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我在Bookmark+代码中找不到任何名为choices的变量。

您在任何书签+源文件标头中看到的最新Last-Updated日期是什么?

如果你还没有这样做,我建议你这样做:

  1. 检查bmkp-after-set-hook中是否有内容。如果是这样,请尝试删除它以查看是否删除了错误。

  2. 下载最新的书签+源文件(from Emacs Wiki or from MELPA)。

  3. 删除您可能拥有的任何字节编译(即*.elc)版本的文件。

  4. 再试一次,看看是否收到同样的错误。如果是,请通过电子邮件向我报告:M-x bmkp-send-bug-report

  5. 如果没有(不再出现此类错误):

    一个。加载源文件bookmark+-mac.el,它定义其他文件使用的Lisp宏。

    湾字节编译bookmark+-mac.el

    ℃。字节编译其他文件。 (一种简单的方法是在Dired中标记它们并使用B。)

    d。重新启动Emacs并查看是否再次出现错误(这次您将使用字节编译的文件)。如果是,M-x bmkp-send-bug-report

  6. 对不起你的麻烦。让我知道,我会解决它。如果您使用M-x bmkp-send-bug-report,请尝试提供完整的配方以重现问题,最好从emacs -Q(无初始文件)开始。 THX。

答案 1 :(得分:0)

德鲁找到了答案:

这是一个ido-completing-read+.el错误。你想报告 它是那个图书馆的维护者。这是相关部分 源代码:

(when (and def (listp def)) (setq choices (append def (nreverse (cl-set-difference choices def))) def (car def)))

(when (and def initial (stringp initial) (not (string= initial ""))) (setq choices (cons def (remove def choices)) def nil))

变量CHOICES未使用(defvar choices)声明,并且 该文件的局部变量lexical-binding设置为t。这意味着 选择被认为是词汇绑定变量。但 从来没有被词汇限制。

图书馆维护者可能只需要添加(defvar选项)。 或者绑定choices。或者删除`lexical-binding' 到了。