推荐入坑TabNine

我换成 C++, 尝试了一下, 好像没发现问题

我的配置 看起来也没啥问题。为啥大家都是好的 我就不对 难受

看看 company-backends 的值, 第一个位置应该是单独的 company-lsp 不是 (company-lsp :wth company-tabnine :separate)

lsp 函数会向 company-backends 加一个 company-lsp 我没记错的话

貌似也是对的

我的company-backend 是nil 有问题吗 我还有救吗

只有在补全的时候才不是 nil

好吧 我自己在琢磨琢磨吧 我也不知道什么问题~~

难道就没有人关心一下TabNine.toml这个配置文件吗?

来自 TabNine 主页 FAQ:

What language is TabNine written in?

TabNine is 14,000 lines of Rust.

In recognition of the fact that TabNine could not exist without the Rust ecosystem, TabNine’s paid features are always enabled when completing Rust code.

所以 TabNine 的付费功能对 Rust 项目是免费提供的。

之前用网页版 Gmail 就觉得它的自动补全好厉害。 现在我的 Emacs 也能有类似的体验啦。 不怎么写代码,我主要写英文文档,TabNine 感觉真不错。

做了一个小实验,我把 TabNine 后端禁用,发现裸 company 的补全在 scratch buffer (就打出 scratch 注释的文档来看) 比有 TabNine 的效果差多了。

大佬,问一下你的补全的后端排序是使用的compay-presient控制的吗?

我没用 company-presient

这个文件在哪里?

大佬,照搬了你的排序函数,也不知道对不对补全的时候基本都是company-lsp其作用,tabnine基本没起到作用,这是截图

company 后端第一个是 company-lsp, 当然只有 lsp起作用 :joy:

那这不能同时使用tabnine和lsp了啊,举个例子我写个py文件,这两个补全后端怎么相互配合补全啊

需要把 (company-lsp :with company-tabnine :separate) 这个放到列表最前面, 这个是互相配合的。 company-mode 是按顺序来用的。

company-lsp总是在表头怎么办? 刚才修改了一下,在第一个文件中(company-lsp :with company-tabnine :separate)在前面,其他的文件中company-lsp都是在最前面的,高不清楚什么问题。要不你把company-lsp还有tabnine那一段配置贴一下。我真的搞不定了

你解决了tabnine和lsp共用的问题了吗

company-backends 可能被其他函数修改的。

你看看 company-backends 最后修改是什么地方, 不同配置有可能不一样。 一般是 lsp 启用的地方, lsp 启用时候自动塞一个 company-lsp 到后端列表里

举个简单例子 Python 的话就是

(add-hook 'python-mode-hook
          (lambda ()
            (lsp)
            (push '(company-lsp :with company-tabnine :separate) company-backends)))
2 个赞