我通过 C-h v 查到 company-minimum-prefix-length = 3,但是当我输入时,总是输入一个字符,company就开始匹配,如下:
我的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里。