推荐入坑TabNine

今天在真实的项目中用了一下 TabNine, 在长句补全的时候真的非常爽。 我写了一篇文章来介绍这个技术:TabNine 利用机器学习技术来补全项目代码

27 个赞

懒猫出马 先顶再看~

老王觉得有没有必要买Premium啊

我先体验下哈,我觉得免费版就不错,只不过 TabNine 一直在 echo-area 催我升级,哈哈哈哈。

表现优于lsp的话 貌似值得一试了!一会搞一个玩玩

以前在vim中体验了一下,感觉是不错。但当时听说有时有占后台资源的问题就ban了。

ban了 TabNine 好像会重启, 哈哈哈

1 个赞

请问下怎么搭配 company-tide 共用?

(company-tabnine :with company-tide) 补全顺序不理想

只用 company-tabnine 就少了文档提示

实现了vue代码补全了吗?

你可以认为 TabNine 是一个 project 级别的 dabbrev-expand , 只不过可以通过 company 多选。

1 个赞

我 靠。如获至宝啊。真牛比啊。写js爽的一b。

的确用起来很爽,但是没有感觉到微卡吗。我在org-mode里用时,感觉到有卡顿。Windows平台。

主要是windows平台吧,我这边都很顺滑

应该是,在补全时候TabNine进程一下子从0飙到30%。

  1. Run M-x company-tabnine-install-binary to install the TabNine binary for your system. 要多久啊 还有这个binary装哪去了。卡了好久

从他的脚本里找的,fetch-binaries.sh,比如windows的如下,也好慢的…… ··· https://update.tabnine.com/1.0.14/x86_64-pc-windows-gnu/TabNine.exe ···

#!/bin/sh
set -e

version=$(curl -sS https://update.tabnine.com/version)
targets=(
    i686-apple-darwin
    x86_64-apple-darwin
    x86_64-unknown-linux-gnu
    x86_64-pc-windows-gnu
    i686-unknown-linux-gnu
    i686-pc-windows-gnu
)
for target in ${targets[@]}
do
    mkdir -p binaries/$version/$target
    case $target in
        *windows*) exe=TabNine.exe ;;
        *) exe=TabNine ;;
    esac
    path=$version/$target/$exe
    echo "downloading $path"
    curl -sS https://update.tabnine.com/$path > binaries/$path
    chmod +x binaries/$path
done
1 个赞

估计被墙国挡了,我挂了代理之后下载刷刷的。默认下载到~/.TabNine

用no-littering的话,会把tabnine binary指定到no-littering指定的目录

简单试了下,确实挺不错的,配置也简单。

但由于一些原因, update.tabnine.com 似乎无法直接访问,我手动下载了下, Linux 上默认的 company-nine 配置:

  1. https://update.tabnine.com/$version/$target/$exe 下载二进制

    比如 https://update.tabnine.com/1.0.14/x86_64-unknown-linux-gnu/TabNine

  2. 下载的文件放到, ~/.TabNine/$version/$target/$exe ,加上可执行权限。

    比如 ~/.TabNine/1.0.14/x86_64-unknown-linux-gnu/TabNine

以上三个变量, $version 可以通过 https://update.tabnine.com/version 看到, $target 通过 eval (company-tabnine--get-target) 查看, $exe 通过 eval (company-tabnine--get-exe) 查看。

用上了。同时开启了 lsp-mode 杂没感受到明显变化。。你们是怎么感受到的 我是不是应该把lsp给关了

company-lsp覆盖了company-tabnine?