spacemacs的 company-minimum-prefix-length 参数不起作用的问题,求赐教!

我通过 C-h v 查到 company-minimum-prefix-length = 3,但是当我输入时,总是输入一个字符,company就开始匹配,如下:w

我的company backends

(setq company-backends-c-mode-common '( company-clang company-yasnippet company-gtags company-etags company-keywords company-files company-dabbrev )

请问下,为什么在输入一个字符时,company就开始匹配了呢,很困惑。。。

spacemacs默认设置的是2,c++的layer里面也没有设置过company-minimum-prefix-length。

查看下你当前buffer 的company-minimum-prefix-length 的local value。

还有一种可能是你启动了company之后在设置其value为3了,这个得看company是怎么使用这个参数的了。估计是你自己配置里面的问题。把你company配置poll出来看看。

这个是因为我用了auto-complete-clang-async.el 这个package的原因,估计是这个包执行时一个字符就开始匹配了,但我现在还看不懂这个包的源码,等了解了更多lisp后我再来改改试试! 谢谢了啊

这是我的配置 ,company-minimum-prefix-length的local-value 是3,现在是只输入一个字符就开始匹配,很烦,我想要的效果是输入3个字符时触发匹配。。。

另外 这个配置的 custom-set-faces没有效果,兄弟知道可能是什么原因吗。。。。。。

(defun ztlevi/company-init ()
  "set my own company-idle-delay and company-minimum-prefix-length"
  (interactive)
  (set (make-local-variable 'company-minimum-prefix-length)
       ztlevi/company-minimum-prefix-length))

;; set the company minimum prefix length and idle delay
(defvar ztlevi/company-minimum-prefix-length 3
  "my own variable for company-minimum-prefix-length")
(add-hook 'company-mode-hook #'ztlevi/company-init)

试试看这个。有些像python之类的layer,作者手动改了minimum prefix,比方说这里。你setq了估计没啥用。

custom-set-face我发现这段code生效得需要进入一个custom-mode(比方说custom-face or custom-group),修改一个参数,save for future然后它会把所有face插入到custom.el文件中。你可以把它们直接加到custom.el文件里或者是你custom-setting里。

非常感谢!!!按照你这个我再去折腾折腾 :grinning: