求助关于Javascript Emacs补全的问题

http://ranwu.me/emacs/2016/05/05/intergrat-tern-into-emacs.html 我按这个做了之后发现,auto-complete-mode是默认disable的。每次打开emacs还要m-x在输入一次。启用之后,不弹补全选择菜单!!!只能打出来大部分keyword按tab才会补全。

而且补全效果比较差,跟youtube视频上面的各种语意补全,关键字补全等等差好多。

如果把emacs的JavaScript补全做到像vs code或者atom那样的关键字补全该怎么做?不求语义各种智能补全。

你应该提供 *Messages* 或者出错的 *Backtrace*


首先是要确定 tern 工作正常,否则其它都是徒劳:

这个回复里有一份最小配置(仅 tern + company),可以用来测试 ternjs 自动补全,完整的帖子里有比较详细的方法说明如何诊断 tern server 问题。

tern 没有问题之后,再考虑完善:

你也可以直接采用大神 purcell陈斌 的 init-javascript.el。

这里还有一份专门的、非常全面的 js 开发环境配置:GitHub - NicolasPetton/Indium: A JavaScript development environment for Emacs

当我们说 javascript 的时候,通常不只是 javascript,还包括它跟其它语言的混合编辑:

2 个赞

我用的是company

设置这个,然后你可以map下key和自动启动

(global-set-key (kbd "C-SPC") 'company-complete)

(setq company-minimum-prefix-length 1
      company-idle-delay 0.08)

谢谢回复。

我按你的提示,发现company-tern无论M-x company-tern 多少次都是"company not enable" tern是启动正常的,端口也对。tern-mode 也是t。

目前的问题是完全不弹出菜单。。。

看来我应该学下lisp。

如果 tern 启动正常,你就用我前面提到的最小配置运行 emacs,这样就排除了其它配置的干扰,补全应该没问题。

1 个赞

看到你的最小化配置,发现问题了。

我之前按 Setting up Emacs for JavaScript (part #2)

(require 'company-mode) 不对。。。应该是(require 'company)

还有.tern-project也是必须的,否则出现 “emacs写js的时候不会提示dom相关的操作方法”的情况

不过输入到"."那下一下补全速度有点慢,不过也能用了。

有效 mark