You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Emacs加载Erlang Wrangler插件出现erlang-xemacs-p未定义错误

解决Emacs启动Wrangler时的erlang-xemacs-p未定义错误

这个错误的核心原因是Wrangler插件依赖的erlang-xemacs-p变量,在你当前使用的Erlang Emacs模式中已经被移除了,再加上你的.emacs配置里混了多个不同版本的Erlang路径,进一步加剧了加载冲突。下面是具体的修复步骤:

第一步:清理混乱的Erlang路径配置

你的配置里同时引用了erl10.6、erl10.4、erl10.1三个版本的路径,这会让Emacs加载时混乱不堪。先统一成你实际在用的Erlang版本(这里假设是erl10.6),修改相关配置:

;; 统一指向同一个Erlang版本,避免路径冲突
(setq erlang-root-dir "C:\\Users\\ecotjos\\erl10.6")
(setq exec-path (cons (concat erlang-root-dir "\\bin") exec-path))
(setq load-path (cons (concat erlang-root-dir "\\lib\\tools-3.3\\emacs") load-path))

第二步:添加缺失的兼容变量

新版Erlang Emacs模式已经移除了erlang-xemacs-p变量,但Wrangler还在引用它。你只需要在加载Wrangler之前手动定义这个变量即可:

;; 定义Wrangler需要的兼容变量,因为你用的是GNU Emacs,所以设为nil
(defvar erlang-xemacs-p nil "Compatibility variable for Wrangler")
(add-to-list 'load-path "C:\\Users\\ecotjos\\erl10.6\\Wrangler\\elisp")
(require 'wrangler)

第三步:使用完整的修正后配置

把上面的内容整合起来,你的.emacs应该改成这样:

;; 统一Erlang版本配置
(setq erlang-root-dir "C:\\Users\\ecotjos\\erl10.6")
(setq exec-path (cons (concat erlang-root-dir "\\bin") exec-path))
(setq load-path (cons (concat erlang-root-dir "\\lib\\tools-3.3\\emacs") load-path))

;; 加载基础模式
(require 'erlang-start)
(require 'cc-mode)

;; 配置并加载Wrangler
(defvar erlang-xemacs-p nil "Compatibility variable for Wrangler")
(add-to-list 'load-path "C:\\Users\\ecotjos\\erl10.6\\Wrangler\\elisp")
(require 'wrangler)

重启Emacs后,这个启动错误应该就消失了。如果还有问题,可以检查一下Wrangler是否适配Erlang 10.6版本,或者尝试更新Wrangler到最新的兼容版本。

内容的提问来源于stack exchange,提问作者mrjoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 12:12:29