代码之家  ›  专栏  ›  技术社区  ›  Gustav Bertram

调用cider refresh将显示“不知道如何使本地化变量成为别名”

  •  3
  • Gustav Bertram  · 技术社区  · 7 年前

    我用的是Emacs25和苹果酒0.18.0。

    我在用 cider-connect 附加到正在运行的nrepl进程。连接后,尝试呼叫时 cider-refresh ,它以“不知道如何使本地化变量成为别名”响应。

    我试过通过设置emacs来跟踪函数和查看字节代码编译缓冲区来进行调试。

    网柱荷载指使用 苹果酒刷新 所以我非常肯定它会起作用。

    如何识别和解决此问题?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Gustav Bertram    7 年前

    在苹果酒0.18.0版中, cider-rename 函数已重命名为 cider-ns-rename . 代码为指向新函数的旧函数定义了别名。

    我正在做的项目 .dir-locals.el 文件(以及我的 .emacs 文件)包含挂接到旧函数名的代码:

    ((nil . ((cider-refresh-before-fn . "integrant.repl/suspend")
             (cider-refresh-after-fn . "integrant.repl/resume"))))
    

    因为这些是指 cider-refresh (现在是别名)而不是 cider-ns-refresh ,调用函数失败,出现上述错误消息。

    修改 .dir-本地.el Emacs 指新功能(如 cider-ns-refresh-before-fn )解决了问题。