centos7下的emacs company补全插件问题:包含大写字母的字符串自动补全问题

我在windows下和centos下都安装了emacs和company插件,在windows下,company插件工作貌似很正常。但是在centos下,company插件无法识别包含大写字母的字符串作为candidate并在后续输入代码时自动补全。 例如: 我代码前面已经定义了一个变量 “PREAMBLE”,后续我继续写代码,当输入“PR”时,没有弹出任何candidate列表(我设置的minimun-prefix-length是2),另外我实验了下,如果变量名包含大写字母,则company插件都不会把它作为补全的候选,例如变量名为“preamblE”,我后面输入“pr”,也不会弹出candidate列表。除非变量名全部为小写。

在windows下则没有这个现象,我的company配置基本和windows一致。请问大家有遇到这个问题吗?

1 个赞

看看这个帖子的问题是不是和你遇到的一样:

1 个赞

谢谢,你推荐的帖子我提问之前搜到过,但是我们俩的问题现象不一样,我这边的问题是company没有弹出任何候选列表,无论输入大写还是小写。感觉是company没有将包含大写字母的字符串视为补全的对象。

我这边是好的,你看看当前生效的 backend是什么,然后查一下与之对应的配置吧。

嗯嗯,正在对比查找。

我经常用centos, 没遇到过这问题. 用company-diag命令看是哪个backend的问题, 然后可以升级插件试试

好的,谢谢提示!

我对比看了一下,centos下默认启用的backend是company-capf,不知道为什么不会识别大写的字符串。如果我用“company-begin-backend”手动启用company-dabbrev-code这个backend就可以识别。 所以我想追问下,怎样把company-capf给disable掉呢?

通过customis菜单手动关闭capf后解决了,我是从windows上emacs过来的,感觉centos下的还是有点糊涂。谢谢大家帮助。

1 个赞