【已解决】打开html文件时,如何开启css补全

如题,我使用的是web-mode 下面是我的代码


;; 打开.js文件自动启动js2-mode
;; 打开.html文件自动启动web-mode
;; 打开.css文件自动启动css-mode
(setq auto-mode-alist
      (append
       '(("\\.js\\'" . js2-mode)
         ("\\.html\\'" . web-mode)
         ("\\.css\\'" . css-mode))
       auto-mode-alist))

;; 打开js文件自动启动js补全
(add-hook 'js2-mode-hook (lambda ()
                           (tern-mode)
                           (company-mode)))

;; 打开html文件自动开启js补全
(add-hook 'web-mode-hook (lambda ()
                           (tern-mode)
                           (company-mode)
                           ))

现在我打开.css文件可以自动css-mode,但打开html文件就不行,请问怎么把css-mode添加到web-mode中呢 就像上面js一样,我现在打开html文件,可以补全js。

默认不会把company-css加入company-backends,要自己加上。我的设置如下。
你这里不能照搬,因为会把你的company-tern去掉。
列表里的某个backend只要结果数不为0,后面的就不会被调用。一个小组的backend会同时被调用。
注意company-capf最好在company-css前面,因为在css衍生mode中capf会在补全后自动加上: ¦;¦表示光标位置),比company-css更好用。

(setq company-backends
        '(company-capf company-files company-css
         (company-dabbrev-code company-gtags company-etags company-keywords)
         company-dabbrev))

另外像spacemacs是给各个major mode单独设定company-backends,但是现在没必要了

感谢您的提醒,按照您给的方式,目前已经可以了。