1

Emacs は、ブックマーク セットで「funcall: Symbol's value as variable is void:choices」を発生させます。

ブックマーク + を無効にした後、ブックマーク セットが正しく機能し始めました。

これを解決する方法を知っている人はいますか?

4

2 に答える 2

1

Bookmark+コードで名前が付けられchoicesた変数の使用が見つかりません。

Bookmark+ ソース ファイルのヘッダーに表示される最新のLast-Updated日付は?

まだ行っていない場合は、これを行うことをお勧めします。

  1. に何か入っていないか確認してくださいbmkp-after-set-hook。その場合は、それを削除して、エラーが解消されるかどうかを確認してください。

  2. 最新の Bookmark+ ソース ファイルをダウンロードします ( Emacs Wiki または MELPA から)。

  3. バイト コンパイルされた (つまり、*.elc) ファイルのバージョンを削除します。

  4. もう一度試して、同じエラーが発生するかどうかを確認してください。その場合は、メールで報告してください: M-x bmkp-send-bug-report

  5. そうでない場合(そのようなエラーはもうありません):

    を。bookmark+-mac.el他のファイルで使用される Lisp マクロを定義するsource file をロードします。

    b. バイトコンパイルbookmark+-mac.el

    c. 他のファイルをバイトコンパイルします。(これを行う簡単な方法は、それらを Dired でマークして使用することBです。)

    d. Emacs を再起動し、再度エラーが発生するかどうかを確認します (今回はバイト コンパイル ファイルを使用します)。もしそうなら、M-x bmkp-send-bug-report.

お手数をおかけして申し訳ありません。お知らせください。修正いたします。使用する場合はM-x bmkp-send-bug-report、問題を再現するための完全なレシピを提供するようにしてください。できればemacs -Q(init ファイルなし) から始めてください。どうも。

于 2015-04-15T16:43:27.737 に答える
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 に設定されています。これは、CHOICES が字句的にバインドされた変数であると見なされることを意味します。しかし、語彙的に束縛されることはありません。

おそらく、ライブラリのメンテナーは追加する必要があります (defvar の選択)。またはバインドしchoicesます。または、t への「lexical-binding」の設定を削除します。

于 2015-04-24T09:20:59.557 に答える