spacemacs 写 js的时候默认没有智能提示

我查看 company-backends :

我记得js的智能提示好像是 company-tern 这个包, 但是这里面并没有那个选项, 这是怎么回事呢

你得先安装javascript 这个layer

这个layer早就装了啊…

@LdBeth 大神召唤术~

$npm install tern

我不是码农,不写js,基本只会写 Emacs Lisp。

文档还是要认真看 https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Blang/javascript#install

除了 layer 之外,最关键的是要安装 tern。

如果跟着文档走了一遍还不行,就要自己诊断。可以从以下几个地方入手:

  • tern 服务有没有运行(ps, pgrep 等终端命令)
  • 手动能不能启动 (M-x tern-mode)
  • 手动调用 tern 的函数是否可行
  • *Messages* 有没有出错信息

这是我解决问题经常使用的方法(或者说习惯)。

tern 的问题排除之后再看 company-backends, 逐步缩小范围。我不用 Spacemacs,也不能给一段代码直接就能运行。


类似的情况:https://emacs-china.org/t/spacemacs-python/2785

这个已经安装了, 但是就是不起作用.

tern-mode 不能用. 之前测试有一次可以使用 回去在Mac上试试, windows上试了好多方式都不行…

启动Spacemacs之后转到Messages Buffer,查看是否有关于Tern的报错。

如果是Windows,需要添加Node模块到系统环境变量。

我不仅是Windows有这问题, Mac也是报这个错…

多明显,找不到tern,配置你的环境变量。

使用最新的 spacemacs, 然后自定义的 layer 重新装. 所有问题都解决了… 不知道怎么回事, Mac 上的配置在 Windows 上还是会有各种各样的问题, 但是 Windows 上也重新来一遍就好了…