company-tabnine 项目使用教程
1、项目介绍
company-tabnine
是一个为 company-mode
提供 TabNine 自动补全后端的 Emacs 插件。TabNine 是一个使用机器学习技术的全语言自动补全工具,能够提供响应迅速、可靠且相关的代码建议。company-tabnine
插件简化了 TabNine 二进制文件的安装和管理,使得在 Emacs 中使用 TabNine 变得更加便捷。
2、项目快速启动
安装步骤
-
确保
company-mode
已安装并配置:(require 'company) (global-company-mode)
-
安装
company-tabnine
:- 使用
use-package
:(use-package company-tabnine :ensure t)
- 使用
package.el
(内置):(require 'package) (package-initialize) (package-install 'company-tabnine)
- 使用
-
配置
company-tabnine
:(require 'company-tabnine) (add-to-list 'company-backends #'company-tabnine)
-
安装 TabNine 二进制文件:
(company-tabnine-install-binary)
推荐配置
-
立即触发补全:
(setq company-idle-delay 0)
-
显示候选编号:
(setq company-show-numbers t)
3、应用案例和最佳实践
应用案例
company-tabnine
适用于任何需要代码自动补全的场景,特别是在编写复杂代码时,TabNine 的机器学习模型能够提供更加智能的建议,提高编码效率。
最佳实践
-
自动平衡括号: TabNine 可以自动平衡括号,通过在
company
的post-completion
钩子中添加逻辑实现。 -
避免与
company-transformers
冲突: 如果company-transformers
或其他插件干扰了 TabNine 的排序,可以使用以下临时解决方案:(setq company-tabnine--disable-next-transform nil) (defun my-company--transform-candidates (func &rest args) (if (not company-tabnine--disable-next-transform) (apply func args) (setq company-tabnine--disable-next-transform nil) (car args))) (defun my-company-tabnine (func &rest args) (when (eq (car args) 'candidates) (setq company-tabnine--disable-next-transform t)) (apply func args)) (advice-add #'company--transform-candidates :around #'my-company--transform-candidates) (advice-add #'company-tabnine :around #'my-company-tabnine)
4、典型生态项目
- company-mode:
company-tabnine
依赖于company-mode
,这是一个强大的 Emacs 补全框架。 - TabNine:
company-tabnine
的核心是 TabNine,一个全语言的自动补全工具,使用机器学习提供智能建议。 - MELPA:
company-tabnine
通过 MELPA 进行包管理,确保用户可以轻松获取最新版本的插件。
通过以上步骤,您可以快速在 Emacs 中集成并使用 company-tabnine
,享受 TabNine 带来的智能代码补全体验。