spacemacs web-mode 输入任意字符都会弹出补全列表

配置完全是照搬子龙大神的配置,这个问题也不知道该怎么贴配置。

现象就是每次输入都会有补全列表出来,敲个空格,任意标点符号什么的都会弹出来,最烦的就是每次输完分号都会弹出来,导致每次换行还得多敲一个 Shift + Enter 或者 Command + Enter.

但是只有 web-mode 下才会有这个问题。

快要疯掉了。。。。。 在线等,各位大神帮帮忙!!

。。。。。。。。。。

spacemacs 用户,完全没有这个问题

楼主更新到最新的 develop 分支试试

谢谢!

解决了,只要把这个设置成 nil 就OK了。

                  auto-completion-return-key-behavior nil

快捷键:

C-j (vim style) go down in company dropdown menu

C-k (vim style) go up in company dropdown menu

C-l (vim style) complete selection

然后用 C-l 去确定补全就好了。

1 个赞

不太明白,确定补全更直观的方式不是 return 或者 tab 吗?

对啊,回车补全肯定更顺手点,可是我这边不知道为啥,输什么都会弹出补全列表,所以用 RET 会很烦。

如果你那边没有这种情况,不需要这么弄了。

这个问题是因为spacemacs在进入web-mode是时候, 默认将company-minimux-prefix-length变量设置成了0, 我的解决办法是将所有的都设置成相同的值,代码如下

(add-hook 'company-mode-hook #'(lambda ()
                             (setq company-minimum-prefix-length 1)))

PS: 之前的代码好像不对,现在这个可以了

我这里设置的是1,你也可以设置成任意你自己想要的值

PS: (2017-12-12) 用web-mode-hook还是有问题,具体表现为这个 设置时灵时不灵的,之后我自己改成用company-mode-hook就完 全没问题了,为了不误人子弟,我还是改下回答吧。

1 个赞

tip:web-mode对company的某些变量会make-local-variable的,你这个变量如果也是如此的话直接setq可能会只改了全局的然后没效果。不对不对,setq是有local改local的吧……

这确实是个问题,是我考虑不周。之前试了,有时候可以,有时候没起作用。 那直接把setq改成seqt-local就行了,设置local-variable