claude-code.nvim
claude-code.nvim 是一款专为 Neovim 用户设计的插件,旨在将强大的 Claude Code AI 助手无缝集成到你的代码编辑环境中。它解决了开发者在编写代码时频繁切换窗口、手动调用命令行工具以及难以实时同步文件修改的痛点,让你无需离开编辑器即可与 AI 进行流畅交互。
这款工具非常适合习惯使用 Neovim 的软件开发者、工程师及技术研究人员。通过简单的快捷键,用户就能在终端窗口中唤起 Claude Code,直接利用其能力进行代码生成、调试或重构。其独特的技术亮点包括:支持自动检测并重载由 AI 修改的文件,确保编辑内容与磁盘实时同步;能够智能识别 Git 项目根目录作为工作区;提供高度自定义的窗口布局(如悬浮窗);并集成了 which-key 提示以提升操作体验。此外,插件拥有严谨的测试框架和类型注解,保证了运行的稳定性与可维护性。如果你希望在保持高效键盘工作流的同时,充分利用大语言模型辅助编程,claude-code.nvim 是一个值得尝试的开源选择。
使用场景
一位后端工程师正在 Neovim 中紧急修复一个复杂的并发处理模块,需要频繁参考项目上下文并重构代码逻辑。
没有 claude-code.nvim 时
- 上下文切换频繁:必须离开编辑器打开独立终端或浏览器运行 Claude Code,打断心流,无法在查看代码的同时与 AI 交互。
- 文件同步滞后:AI 生成的代码保存在外部,需手动切回 Neovim 重新加载或复制粘贴,容易遗漏修改或产生版本冲突。
- 操作繁琐低效:每次询问都需要手动输入完整的项目路径参数,无法自动识别 Git 根目录,增加了重复性机械操作。
- 界面割裂感强:缺乏统一的浮动窗口或分屏管理,屏幕空间利用率低,难以同时监控代码变更和 AI 对话进度。
使用 claude-code.nvim 后
- 无缝原地协作:只需一键即可在当前 Neovim 会话中唤起终端分屏,直接在代码旁与 Claude Code 对话,保持专注不中断。
- 实时自动同步:插件自动检测并重载由 AI 修改的文件,缓冲区实时更新,确保所见即所得,彻底消除手动刷新步骤。
- 智能环境感知:自动以当前 Git 项目根目录为工作区启动,支持
--continue等参数透传,让 AI 精准理解整个项目结构。 - 灵活视窗管理:支持自定义浮动窗口或固定分屏比例,可结合 which-key 快速调用,完美适配多任务并行开发场景。
claude-code.nvim 将强大的 AI 助手深度融入 Neovim 工作流,把原本割裂的“编码 - 咨询”过程转变为流畅的原地闭环,显著提升了复杂重构任务的效率。
运行环境要求
- 未说明 (适用于支持 Neovim 和 Claude Code CLI 的所有平台)
无需求
未说明

快速开始
Claude Code Neovim 插件
Claude Code AI 助手与 Neovim 之间的无缝集成
功能 • 要求 • 安装 • 配置 • 使用 • 贡献 • 讨论

此插件完全由 Claude Code 在 Neovim 终端中构建而成,随后又在自身内部使用 Claude Code 完成所有操作!
功能
- 🚀 通过单键即可在终端窗口中切换 Claude Code
- 🧠 支持命令行参数,如
--continue和自定义变体 - 🔄 自动检测并重新加载由 Claude Code 修改的文件
- ⚡ 文件外部更改时实时更新缓冲区
- 📱 可自定义窗口位置和大小(包括浮动窗口)
- 🤖 与 which-key 集成(如果可用)
- 📂 自动将 git 项目根目录作为工作目录(若可用)
- 🧩 模块化且易于维护的代码结构
- 📋 使用 LuaCATS 进行类型注解,以获得更好的 IDE 支持
- ✅ 配置验证以防止错误
- 🧪 测试框架确保可靠性(44 项全面测试)
要求
- Neovim 0.7.0 或更高版本
- 已安装并可在 PATH 中访问的 Claude Code CLI 工具
- plenary.nvim(用于 git 操作的依赖项)
有关版本历史和更新,请参阅 CHANGELOG.md。
安装
使用 lazy.nvim
return {
"greggh/claude-code.nvim",
dependencies = {
"nvim-lua/plenary.nvim", -- 用于 git 操作的必需品
},
config = function()
require("claude-code").setup()
end
}
使用 packer.nvim
use {
'greggh/claude-code.nvim',
requires = {
'nvim-lua/plenary.nvim', -- 用于 git 操作的必需品
},
config = function()
require('claude-code').setup()
end
}
使用 vim-plug
Plug 'nvim-lua/plenary.nvim'
Plug 'greggh/claude-code.nvim'
" 安装完成后,在 init.vim 中添加以下内容:
" lua require('claude-code').setup()
配置
可通过向 setup 函数传递表来配置插件。以下是默认配置:
require("claude-code").setup({
-- 终端窗口设置
window = {
split_ratio = 0.3, -- 终端窗口占屏幕的比例(水平分割为高度,垂直分割为宽度)
position = "botright", -- 窗口位置:"botright"、"topleft"、"vertical"、"float" 等
enter_insert = true, -- 打开 Claude Code 时是否进入插入模式
hide_numbers = true, -- 隐藏终端窗口中的行号
hide_signcolumn = true, -- 隐藏终端窗口中的符号列
-- 浮动窗口配置(仅当 position = "float" 时适用)
float = {
width = "80%", -- 宽度:列数或百分比字符串
height = "80%", -- 高度:行数或百分比字符串
row = "center", -- 行位置:数字、"center" 或百分比字符串
col = "center", -- 列位置:数字、"center" 或百分比字符串
relative = "editor", -- 相对于:"editor" 或 "cursor"
border = "rounded", -- 边框样式:"none"、"single"、"double"、"rounded"、"solid"、"shadow"
},
},
-- 文件刷新设置
refresh = {
enable = true, -- 启用文件更改检测
updatetime = 100, -- Claude Code 活动时的 updatetime(毫秒)
timer_interval = 1000, -- 检查文件更改的频率(毫秒)
show_notifications = true, -- 文件重新加载时显示通知
},
-- Git 项目设置
git = {
use_git_root = true, -- 打开 Claude Code 时将 CWD 设置为 git 根目录(若位于 git 项目中)
},
-- Shell 特定设置
shell = {
separator = '&&', -- Shell 命令中使用的命令分隔符
pushd_cmd = 'pushd', -- 将目录压入堆栈的命令(例如,bash/zsh 的 'pushd',nushell 的 'enter')
popd_cmd = 'popd', -- 将目录从堆栈中弹出的命令(例如,bash/zsh 的 'popd',nushell 的 'exit')
},
-- 命令设置
command = "claude", -- 用于启动 Claude Code 的命令
-- 命令变体
command_variants = {
-- 对话管理
continue = "--continue", -- 恢复最近的对话
resume = "--resume", -- 显示交互式对话选择器
-- 输出选项
verbose = "--verbose", -- 启用详细日志记录,提供逐轮完整输出
},
-- 键位映射
keymaps = {
toggle = {
normal = "<C-,>", -- 普通模式下切换 Claude Code 的键位,设为 false 可禁用
terminal = "<C-,>", -- 终端模式下切换 Claude Code 的键位,设为 false 可禁用
variants = {
continue = "<leader>cC", -- 普通模式下带有 continue 标志的 Claude Code 键位
verbose = "<leader>cV", -- 普通模式下带有 verbose 标志的 Claude Code 键位
},
},
window_navigation = true, -- 启用窗口导航键位(<C-h/j/k/l>)
scrolling = true, -- 启用滚动键位(<C-f/b>)以实现页面上下滚动
}
})
使用
快速入门
" 在你的 Vim/Neovim 命令或初始化文件中:
:ClaudeCode
-- 或者从 Lua 中调用:
vim.cmd[[ClaudeCode]]
-- 或者将其映射到一个键上:
vim.keymap.set('n', '<leader>cc', '<cmd>ClaudeCode<CR>', { desc = '切换 Claude Code' })
命令
基本命令:
:ClaudeCode- 切换 Claude Code 终端窗口
会话管理命令:
:ClaudeCodeContinue- 恢复最近的会话:ClaudeCodeResume- 显示交互式会话选择器
输出选项命令:
:ClaudeCodeVerbose- 启用详细日志记录,显示每一步的完整输出
注意:命令会根据你配置中的 command_variants 自动生成功能。
键位映射
默认键位映射:
<leader>ac- 切换 Claude Code 终端窗口(普通模式)<C-,>- 切换 Claude Code 终端窗口(普通模式和终端模式)
变体模式映射(如果已配置):
<leader>cC- 使用--continue标志切换 Claude Code<leader>cV- 使用--verbose标志切换 Claude Code
此外,在 Claude Code 终端中:
<C-h>- 移动到左侧窗口<C-j>- 移动到下方窗口<C-k>- 移动到上方窗口<C-l>- 移动到右侧窗口<C-f>- 向下滚动一页<C-b>- 向上滚动一页
注意:使用 <C-f> 或 <C-b> 滚动后,需要按 i 键重新进入插入模式,才能继续向 Claude Code 输入内容。
当 Claude Code 修改了 Neovim 中打开的文件时,这些文件会自动重新加载。
浮动窗口示例
要在浮动窗口中使用 Claude Code:
require("claude-code").setup({
window = {
position = "float",
float = {
width = "90%", -- 占据编辑器宽度的90%
height = "90%", -- 占据编辑器高度的90%
row = "center", -- 垂直居中
col = "center", -- 水平居中
relative = "editor",
border = "double", -- 使用双线边框样式
},
},
})
工作原理
该插件:
- 创建一个运行 Claude Code CLI 的终端缓冲区
- 设置自动命令以检测磁盘上的文件变化
- 当文件被 Claude Code 修改时自动重新加载
- 提供方便的键位映射和命令来切换终端
- 自动检测 Git 仓库,并将工作目录设置为 Git 根目录
贡献
欢迎贡献!请查看我们的 贡献指南,了解如何开始。
许可证
MIT 许可证 - 更多信息请参阅 LICENSE。
开发
有关如何设置开发环境、安装所有必要工具以及理解项目结构的完整指南,请参阅 DEVELOPMENT.md。
开发环境设置
该项目提供了全面的开发环境设置:
- DEVELOPMENT.md 中包含适用于所有平台的完整安装说明
- 用于代码质量的预提交钩子
- 包含 44 个全面测试的测试框架
- 静态分析和格式化工具
- 每周更新 Claude CLI 和相关依赖的工作流程
# 运行测试
make test
# 检查代码质量
make lint
# 设置预提交钩子
scripts/setup-hooks.sh
# 格式化代码
make format
社区
- GitHub Discussions - 获取帮助、分享想法并与社区其他用户交流
- GitHub Issues - 报告问题或提出功能建议
- GitHub Pull Requests - 参与项目贡献
致谢
- Anthropic 的 Claude Code - 本插件完全基于 Claude Code 构建。开发成本为 $5.42,使用了 17 分 12.9 秒的 API 时间
- Plenary.nvim - 测试框架和 Git 操作的核心依赖
- 语义化版本控制 - 本项目使用的版本号标准
- 贡献者公约 - 行为准则标准
- Keep a Changelog - 更改日志格式
- LuaCATS - 用于提升 IDE 支持的类型注解
- StyLua - Lua 代码格式化工具
- Luacheck - Lua 静态分析和 linter 工具
由 Gregg Housh 用心打造
版本历史
v0.4.32025/03/21v0.4.22025/03/04v0.4.12025/03/03常见问题
相似工具推荐
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
codex
Codex 是 OpenAI 推出的一款轻量级编程智能体,专为在终端环境中高效运行而设计。它允许开发者直接在命令行界面与 AI 交互,完成代码生成、调试、重构及项目维护等任务,无需频繁切换至浏览器或集成开发环境,从而显著提升了编码流程的连贯性与专注度。 这款工具主要解决了传统 AI 辅助编程中上下文割裂的问题。通过将智能体本地化运行,Codex 能够更紧密地结合当前工作目录的文件结构,提供更具针对性的代码建议,同时支持以自然语言指令驱动复杂的开发操作,让“对话即编码”成为现实。 Codex 非常适合习惯使用命令行的软件工程师、全栈开发者以及技术研究人员。对于追求极致效率、偏好键盘操作胜过图形界面的极客用户而言,它更是理想的结对编程伙伴。 其独特亮点在于灵活的部署方式:既可作为全局命令行工具通过 npm 或 Homebrew 一键安装,也能无缝对接现有的 ChatGPT 订阅计划(如 Plus 或 Pro),直接复用账户权益。此外,它还提供了从纯文本终端到桌面应用的多形态体验,并支持基于 API 密钥的深度定制,充分满足不同场景下的开发需求。
openai-cookbook
openai-cookbook 是 OpenAI 官方提供的一套实用代码示例与指南合集,旨在帮助开发者快速上手并掌握 OpenAI API 的核心用法。面对大模型应用中常见的提示词工程、函数调用、数据嵌入及复杂任务编排等挑战,新手往往难以找到标准化的实现路径。openai-cookbook 通过提供经过验证的代码片段和详细教程,有效解决了“如何从零开始构建应用”以及“如何最佳实践特定功能”的痛点。 这套资源主要面向软件开发者和 AI 技术研究人员,同时也适合希望深入理解大模型能力的技术爱好者。虽然示例代码主要以 Python 编写,但其背后的设计思路和技术逻辑具有通用性,可轻松迁移至其他编程语言。其独特亮点在于内容紧跟官方最新特性更新,覆盖了从基础文本生成到高级代理(Agent)构建的全场景需求,且所有示例均支持在本地环境直接运行调试。作为开源项目,它采用宽松的 MIT 许可证,鼓励社区贡献与二次开发,是学习大模型应用开发不可或缺的实战手册。
gstack
gstack 是 Y Combinator CEO Garry Tan 亲自开源的一套 AI 工程化配置,旨在将 Claude Code 升级为你的虚拟工程团队。面对单人开发难以兼顾产品战略、架构设计、代码审查及质量测试的挑战,gstack 提供了一套标准化解决方案,帮助开发者实现堪比二十人团队的高效产出。 这套配置特别适合希望提升交付效率的创始人、技术负责人,以及初次尝试 Claude Code 的开发者。gstack 的核心亮点在于内置了 15 个具有明确职责的 AI 角色工具,涵盖 CEO、设计师、工程经理、QA 等职能。用户只需通过简单的斜杠命令(如 `/review` 进行代码审查、`/qa` 执行测试、`/plan-ceo-review` 规划功能),即可自动化处理从需求分析到部署上线的全链路任务。 所有操作基于 Markdown 和斜杠命令,无需复杂配置,完全免费且遵循 MIT 协议。gstack 不仅是一套工具集,更是一种现代化的软件工厂实践,让单人开发者也能拥有严谨的工程流程。