大家 company-backends 里 company-lsp 和 company-yasnippet 怎么配置的啊

company-lsp, company-yasnippet 这两分开的话,各自的补全都很好,只不过 company-lsp 会直接把 company-yasnippet 给屏蔽掉了,反之亦然。 配在一起的话,对一些函数的补全还不错(无论是自己写的还是系统自带的),但其他时候补全感觉有些乱。


我的 company-backends 配置

(set (make-local-variable 'company-backends)
		  '((company-lsp company-yasnippet ) company-dabbrev-code
		    company-dabbrev
		    company-files))

一个结构体及相应的补全


struct token{
    char type;
    char string[MAXTOKENLEN];
};
struct token this;

2018-03-06 20-40-11屏幕截图

其他地方的补全

2018-03-06 21-13-43屏幕截图


while, for 之类的还不错 2018-03-06 21-21-50屏幕截图


定义的一些函数效果也很好

snippet名字一般都很短, 感觉用不着补全, 我是定义了一个快捷键用来展开snippet

company-yasnippet本身并不建议放到company-backend里,推荐单独绑定键位

我试过两者一起开启,效果并不好,于是就关掉了

恩,我试了几次也从 company-backends 里去除掉了

@netjune 恩,这样确实不错

company-yasnippet我单独绑了个键

company-lsp我添加到buffer-local的company-backends里去了……

请教下,我在c-mode下,company-backends 里 都有 :with company-yasnippet,比如company-clang :with company-yasnippet,这个company-yasnippet会补全一大堆乱七八糟的东西,请问要怎么把这个 company-yasnippet排除掉呢

我的company-backends的值

((company-lsp . #1=(:with company-yasnippet))
 (company-dabbrev-code company-gtags company-etags company-keywords . #1#)
 (company-files . #1#)
 (company-dabbrev . #1#))

这个配置里的#1# 是什么意思

1 个赞