claude-code.nvim

GitHub
2k 65 简单 1 次阅读 今天MIT插件
AI 解读 由 AI 自动生成,仅供参考

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 的所有平台)
GPU

无需求

内存

未说明

依赖
notes该工具是 Neovim 插件,非本地运行的 AI 模型,因此无需 GPU 或特定 Python 环境。核心前提是必须在系统 PATH 中安装官方 'Claude Code CLI' 工具。插件依赖 'plenary.nvim' 处理 Git 操作。支持通过 lazy.nvim, packer.nvim 或 vim-plug 安装。
python无需求 (基于 Lua/Neovim)
Neovim >= 0.7.0
Claude Code CLI
plenary.nvim
claude-code.nvim hero image

快速开始

Claude Code Neovim 插件

GitHub 许可证 GitHub 星标 GitHub 问题 CI Neovim 版本 测试 版本 讨论

Claude Code AI 助手与 Neovim 之间的无缝集成

功能要求安装配置使用贡献讨论

Claude Code 在 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",  -- 使用双线边框样式
    },
  },
})

工作原理

该插件:

  1. 创建一个运行 Claude Code CLI 的终端缓冲区
  2. 设置自动命令以检测磁盘上的文件变化
  3. 当文件被 Claude Code 修改时自动重新加载
  4. 提供方便的键位映射和命令来切换终端
  5. 自动检测 Git 仓库,并将工作目录设置为 Git 根目录

贡献

欢迎贡献!请查看我们的 贡献指南,了解如何开始。

许可证

MIT 许可证 - 更多信息请参阅 LICENSE

开发

有关如何设置开发环境、安装所有必要工具以及理解项目结构的完整指南,请参阅 DEVELOPMENT.md

开发环境设置

该项目提供了全面的开发环境设置:

  • DEVELOPMENT.md 中包含适用于所有平台的完整安装说明
  • 用于代码质量的预提交钩子
  • 包含 44 个全面测试的测试框架
  • 静态分析和格式化工具
  • 每周更新 Claude CLI 和相关依赖的工作流程
# 运行测试
make test

# 检查代码质量
make lint

# 设置预提交钩子
scripts/setup-hooks.sh

# 格式化代码
make format

社区

致谢


Gregg Housh 用心打造

版本历史

v0.4.32025/03/21
v0.4.22025/03/04
v0.4.12025/03/03

常见问题

相似工具推荐

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|5天前
插件Agent图像

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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.1k|★★☆☆☆|4天前
图像数据工具视频

codex

Codex 是 OpenAI 推出的一款轻量级编程智能体,专为在终端环境中高效运行而设计。它允许开发者直接在命令行界面与 AI 交互,完成代码生成、调试、重构及项目维护等任务,无需频繁切换至浏览器或集成开发环境,从而显著提升了编码流程的连贯性与专注度。 这款工具主要解决了传统 AI 辅助编程中上下文割裂的问题。通过将智能体本地化运行,Codex 能够更紧密地结合当前工作目录的文件结构,提供更具针对性的代码建议,同时支持以自然语言指令驱动复杂的开发操作,让“对话即编码”成为现实。 Codex 非常适合习惯使用命令行的软件工程师、全栈开发者以及技术研究人员。对于追求极致效率、偏好键盘操作胜过图形界面的极客用户而言,它更是理想的结对编程伙伴。 其独特亮点在于灵活的部署方式:既可作为全局命令行工具通过 npm 或 Homebrew 一键安装,也能无缝对接现有的 ChatGPT 订阅计划(如 Plus 或 Pro),直接复用账户权益。此外,它还提供了从纯文本终端到桌面应用的多形态体验,并支持基于 API 密钥的深度定制,充分满足不同场景下的开发需求。

75.2k|★☆☆☆☆|今天
语言模型Agent插件

openai-cookbook

openai-cookbook 是 OpenAI 官方提供的一套实用代码示例与指南合集,旨在帮助开发者快速上手并掌握 OpenAI API 的核心用法。面对大模型应用中常见的提示词工程、函数调用、数据嵌入及复杂任务编排等挑战,新手往往难以找到标准化的实现路径。openai-cookbook 通过提供经过验证的代码片段和详细教程,有效解决了“如何从零开始构建应用”以及“如何最佳实践特定功能”的痛点。 这套资源主要面向软件开发者和 AI 技术研究人员,同时也适合希望深入理解大模型能力的技术爱好者。虽然示例代码主要以 Python 编写,但其背后的设计思路和技术逻辑具有通用性,可轻松迁移至其他编程语言。其独特亮点在于内容紧跟官方最新特性更新,覆盖了从基础文本生成到高级代理(Agent)构建的全场景需求,且所有示例均支持在本地环境直接运行调试。作为开源项目,它采用宽松的 MIT 许可证,鼓励社区贡献与二次开发,是学习大模型应用开发不可或缺的实战手册。

72.7k|★★☆☆☆|4天前
语言模型插件

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 不仅是一套工具集,更是一种现代化的软件工厂实践,让单人开发者也能拥有严谨的工程流程。

72k|★★☆☆☆|今天
Agent插件