
copilot.lua
让 Neovim 秒变 AI 补全编辑器,Tab 即用
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-15 · 当前星标 ★ 4093
技术标签
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- NeoVim 0.11.0 或更高版本
- NodeJS v22 或更高版本
- 已安装插件管理器(如 packer.nvim)
- (可选)copilot-lsp 用于 NES 功能
安装与启动步骤
-
1确认环境版本
先检查 NeoVim 与 NodeJS 版本,低于 0.11.0 / v22 需要先升级,否则 Copilot 服务无法运行。
nvim --version node -v -
2安装插件
用你习惯的插件管理器添加 zbirenbaum/copilot.lua;需要 NES 功能时再加上 copilot-lsp 依赖。
use { "zbirenbaum/copilot.lua", requires = { "copilotlsp-nvim/copilot-lsp", -- (optional) for NES functionality }, } -
3配置懒加载
Copilot 服务启动需要时间,README 建议懒加载:以 Copilot 命令和 InsertEnter 事件触发,避免拖慢启动。
use { "zbirenbaum/copilot.lua", requires = { "copilotlsp-nvim/copilot-lsp", -- (optional) for NES functionality }, cmd = "Copilot", event = "InsertEnter", config = function() require("copilot").setup({}) end, } -
4调用 setup 启动
必须执行 require("copilot").setup(options) 才会启动 Copilot;不传参数即使用默认配置。
require("copilot").setup({}) -
5按需自定义配置
在 setup 的 table 中覆盖默认项,例如面板、建议键位、模型、Node 路径等,再重启 Neovim 生效。
require('copilot').setup({ panel = { enabled = true }, suggestion = { enabled = true, auto_trigger = false, keymap = { accept = "<M-l>" }, }, copilot_node_command = 'node', })
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
suggestion.enabled | 否 | 是否启用内联虚拟文本建议(默认 true) | true |
suggestion.auto_trigger | 否 | 是否自动触发建议,默认关闭需手动触发 | false |
panel.enabled | 否 | 是否启用建议列表面板 | true |
nes.enabled | 否 | 启用 NES 功能,需以 copilot-lsp 为依赖 | false |
copilot_node_command | 否 | 调用 Copilot 服务使用的 Node 命令,需 v22+ | node |
auth_provider_url | 否 | 非 github.com 的认证提供方地址,默认 nil | nil |
如何确认成功
重启 Neovim 后执行 :Copilot 命令,或进入插入模式看到灰色虚拟文本建议即为生效。
常见问题
Q:提示版本不满足怎么办?
A:本项目要求 NeoVim 0.11.0 以上、NodeJS v22 以上,请先升级对应运行时再安装插件。
Q:为什么要懒加载?
A:README 说明 Copilot 服务启动需要一定时间,推荐用 cmd = "Copilot"、event = "InsertEnter" 懒加载以避免影响启动速度。
Q:怎么启用 NES 功能?
A:需要额外安装 copilotlsp-nvim/copilot-lsp 作为依赖,并把配置中的 nes.enabled 设为 true。
Q:默认按什么键采纳建议?
A:默认配置下 accept 为 <M-l>,next/prev 为 <M-]> / <M-[>,dismiss 为 <C-]>,可在 suggestion.keymap 中改写。
注意事项
- 必须调用 require("copilot").setup(options) 才会启动 Copilot,未调用则不生效。
- 认证方式见 README 的 Authentication 一节;使用替代 GitHub 实例时通过 auth_provider_url 指定。
- 不传任何参数时使用 README 中列出的默认配置。
- copilot-lsp 为可选依赖,仅在需要 NES 功能时安装。
核心亮点
- 纯 Lua 实现,配置项丰富,可精细控制触发、显示与接受行为
- 支持 nvim-cmp 集成,补全建议能进入统一菜单而非独立浮层
- 提供 API 与虚拟文本渲染,便于其他插件扩展和自定义交互
不足之处
- 依赖 GitHub Copilot 订阅与网络,离线或未授权时无法使用
- 与 Neovim 版本及 nvim-cmp 等插件存在兼容性要求,配置门槛偏高
适用场景
- Neovim 用户写代码时实时获得整行或函数级补全建议
- 把 Copilot 建议接入 nvim-cmp 菜单,与 LSP 补全统一展示
- 插件开发者调用其 API 构建自定义 AI 补全交互
替代项目
copilot.vim、codeium.nvim
同类项目推荐
The-Creator-AI
开源
大型复杂代码库的 AI 编程助手,精准理解全局上下文
AI Coding assistant for large and complex codebases.
craft-anything
开源
拆解任意软件原理,动手复刻自己的版本
Craft Anything: understand how any software works, and craft your own.
Lim-Code
开源
在 VS Code 里直接调用 AI,写代码不用切窗口
一个强大的 VS Code AI 编程助手
sesori_apps_monorepo
开源
手机远程遥控 AI 编程,随时接管编码会话
Sesori iOS/Android app and the Sesori Bridge CLI — drive Claude, Codex, OpenCode, C···
vet
开源
智能筛选 GitHub 议题,快速锁定值得关注的重点
Find issues worth your attention.
langcli
开源
终端里的多模型编程助手,说句话就改代码
Building agentic coding assistant in public
claudecode-best-practices
开源
照着做,让 Claude Code 干活更顺手
A collection of best practices and procedures for using Claude Code
ml-diffucoder
开源
用扩散模型并行生成代码,替代传统逐字解码
DiffuCoder: Understanding and Improving Masked Diffusion Models for Code Generation
dotnet-skills
开源
一条命令给 AI 编程助手装上 .NET 技能包
One of the largest .NET-focused skill collections for AI coding assistants, with a c···