spacemacs报错Company backend 'xxx' could not be initialized.解决方案

本文介绍了解决Spacemacs环境下自动补全功能失效的方法。通过调整company包的版本,解决了因版本冲突导致的补全功能异常问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原本是在windows 7上安装的spacemacs。安装GNU Emacs 24.5.1,然后在%HOME%目录下使用.emacs.d、.spacemacs.d、.spacemacs这三个文件/文件夹进行管理配置。平时主要对这三个文件/文件夹进行备份。

而之前是可以正常补全的。层下面packages.el的相关配置如下:

(defconst wenhao-packages
  '(youdao-dictionary
    company

    )
  )


(defun wenhao/post-init-company ()
  (progn
    (setq company-minimum-prefix-length 1
          company-idle-delay 0.08)
    ))

(add-hook 'after-init-hook'global-company-mode)


关于spacemacs-0.105.21 出现company报 "Company backend 'xxx' could not be initialized: Invalid byte opcode: op=183, ptr=2"错误。如下图所示。


因为目前最新版的spacemacs似乎有些改变。使用2018年最新的spacemacs配置更新之后,不知道为什么使用方式都不一样了,按SPC前缀,不起作用了。所以,注意这里说的问题是旧版的spacemacs。

出现这个问题尝试各种的解决方案,

使用popkit源,执行

M-x packages-list,却发现没有company单独的这项。


然后把过去备份的.emacs.d拿过来覆盖,还是不行。

使用最新版的spacemacs或者子龙山人的配置也都不对,SPC不能用。

最后去检查popkit的主页http://elpa.popkit.org/,在这里搜索company包,发现明明有这个包啊!怎么M-x list packages找不到。


把这个company包下载下来,company-20180616.608.tar。

再到.emacs.d中去找company包,在.emacs.d\elpa下面找到原来有两个版本,可能这两个版本冲突了。造成company backend不能初始化。


注意company的版本,为了跟其他相关包的版本对应(company-quickhelp-20160826.806),删除2017版的company,留下2016版的。

然后启动spacemacs,试一下自动补全,终于正常了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值