<!-- title: ThePrimeagen的99：让AI成为Neovim的灵魂搭档 -->
<!-- domain: programming -->
<!-- video: https://www.youtube.com/watch?v=ws9zR-UzwTE -->

# ThePrimeagen的99：让AI成为Neovim的灵魂搭档

## 导语

2026年初，一个名叫"99"的GitHub仓库以每天542颗Star的速度疯狂飙升，迅速冲上GitHub Trending榜首。它的创建者不是什么AI巨头，而是一位在Netflix干了10年性能关键代码的硬核程序员——ThePrimeagen（Michael Paulson）。他在YouTube上发布了一条标题极其大胆的视频：**"This is the only AI I want to use"**（这是我唯一想用的AI）。这个标题在AI工具遍地走的2026年，简直是掷地有声的宣言。

这条视频的核心论点很反直觉：**当所有人都在让AI写更多代码的时候，99偏偏要让AI少写代码，但写得更精准。** 它不是又一个Copilot克隆品，不是一个嵌入编辑器的ChatGPT套壳，而是一套完全基于Neovim原生能力构建的"受约束AI工作流"。ThePrimeagen的哲学很明确——AI应该增强你的能力，而不是替代你的思考。对于仍然享受手写代码乐趣的开发者来说，99可能是目前最"对味"的AI编程工具。

## 视频背景卡片

| 项目 | 内容 |
|------|------|
| 视频标题 | This is the only AI I want to use |
| 频道 | ThePrimeagen |
| 时长 | 约25分钟 |
| 播放量 | 50万+（发布后数周） |
| 核心主题 | Neovim AI Agent"99"的设计哲学与实战演示 |
| GitHub Star | 4.7k+（持续增长中） |
| 项目语言 | Lua（Neovim原生） |

## 核心内容拆解

### 1. 反Copilot哲学：为什么"少即是多"

ThePrimeagen在视频开篇就抛出了一个尖锐的观点：**市面上绝大多数AI编程工具的底层逻辑是错误的。** Copilot、Cursor、Windsurf这些工具的共同假设是——AI应该尽可能多地替你写代码。但ThePrimeagen认为，这种思路会导致两个严重后果：

**第一，技能退化。** 当AI替你完成了大部分编码工作，你对代码库的理解会越来越浅。你以为你在"编程"，其实你只是在"审批"AI的产出。ThePrimeagen在Netflix的10年经验告诉他，真正高性能的代码来自于程序员对系统的深度理解，而不是对AI建议的快速接受。

**第二，上下文割裂。** 当AI自动补全充斥你的编辑器，你很容易失去对当前代码块完整逻辑的把握。99的设计哲学完全不同——它只在**你明确划定的范围内**介入。你用Visual Selection选中一段代码，告诉AI"在这段代码的上下文中帮我做X"，AI就只在那个范围内工作。

> 视频原话大意："我不是反AI，我是反懒惰。AI是一个工具，不是一个拐杖。如果你连自己写的代码都不愿意理解，那AI也救不了你。"

### 2. 99的核心架构：窗口即上下文

99的技术架构是它最精妙的地方。ThePrimeagen没有选择做一个sidebar聊天窗口（像Copilot Chat那样），而是利用Neovim本身的窗口系统来构建AI交互界面。

**核心理念是"窗口即上下文"（Window as Context）：**

- 每个Neovim窗口天然绑定一个buffer，每个buffer有明确的文件类型和内容范围
- 99利用Neovim的autocmd机制，自动检测窗口变化并动态调整AI的提示词
- 当你切换窗口时，AI的上下文也跟着切换——不需要你手动复制粘贴代码给AI

从DeepWiki对99源码的分析来看，整个系统围绕以下几个核心模块构建：

- **`_99` Module**：主入口和API层，管理所有子模块的生命周期
- **State Management**：追踪当前AI请求的状态（等待中/进行中/已完成）
- **Request Lifecycle**：从用户触发到AI响应的完整请求链路
- **Prompt System**：动态构建上下文感知的提示词
- **Agent Rules & Skills**：通过`SKILL.md`文件定义AI在每个项目中的行为规则

这套架构的优雅之处在于——它完全利用了Neovim已有的生态系统，不需要额外的UI框架，不需要Electron，不需要任何重型依赖。一个Lua文件搞定一切。

### 3. Visual Selection操作：精准打击

视频中演示最密集的部分是99的Visual Selection操作。这是99区别于所有其他AI编程工具的杀手级功能：

**工作流程是这样的：**
1. 你在Normal模式下选中一段代码（Visual模式）
2. 输入99的触发命令
3. 用自然语言描述你想在这段代码上做什么
4. AI只在选中范围内生成修改建议
5. 你审查后决定接受或拒绝

这个流程的关键创新在于"范围约束"。传统的AI编程工具通常会读取你打开的整个文件甚至整个项目作为上下文，然后生成可能影响任何位置的建议。99的做法是把AI的"手脚"绑在你选中的那几行代码上。

**实际效果是什么？** 假设你有一个300行的函数，你只想修改其中10行的逻辑。用Copilot，你需要非常小心地检查AI没有在你不期望的地方做改动。用99，你选中那10行，AI的修改建议就只涉及那10行。审查负担从300行降到10行——这是一个数量级的效率提升。

### 4. Agent Rules与SKILL.md：让AI遵守你的规则

99引入了一个独特的设计——**项目级别的Agent Rules**。通过在项目根目录放置一个`SKILL.md`文件，你可以定义AI在这个项目中应该遵循的行为准则。

举个例子，你可以在`SKILL.md`中写：

```
- 本项目使用Rust，请遵循Rust idioms
- 错误处理使用anyhow，不要用unwrap
- 所有public函数必须有doc comment
- 测试使用cargo test，不要建议其他框架
```

99会在每次AI请求时自动读取这个文件，将规则注入提示词。这意味着AI不再是"通用程序员"，而是**适应你项目规范的专属助手**。

从Instagit的知识库来看，99还支持**语言特定的自动检测和配置加载**。它通过映射Neovim的`filetype`选项，在不同语言之间自动切换AI的行为模式。比如打开一个Python文件，AI会自动切换到Python风格指南；切换到一个TypeScript文件，AI会遵循TypeScript的最佳实践。

### 5. Vibe操作：快速代码感知

视频中有一个被很多人忽略但我觉得极其重要的功能——**Vibe操作**。这不是一个编程功能，而是一个代码理解功能。

当你对一个大型代码库感到陌生时，你可以选中一段代码，用Vibe操作让AI给你一个快速的解释。但关键区别是：99的解释是**基于选中代码的实际内容**，而不是基于AI对类似代码的泛化理解。

这就像有一个资深同事坐在你旁边，你指着一行代码问"这里在干嘛"，他不会给你讲教科书上的理论，而是直接告诉你"这个函数是在处理从Kafka发来的消息，这里之所以用Arc<Mutex>是因为两个线程会同时访问这个状态"。

ThePrimeagen在视频中特别强调：**Vibe操作的目的不是让你偷懒不读代码，而是降低你理解陌生代码的初始门槛。** 你先用Vibe获得一个全局概览，然后再深入阅读细节。这符合他一贯的理念——AI辅助理解，但最终的 comprehension 必须是你自己的。

### 6. Search操作：AI驱动的语义搜索

99还内置了语义搜索功能。不同于传统的`grep`或`ripgrep`基于文本匹配，99的Search操作让AI理解你的搜索意图。

比如你可以输入"找到所有处理用户认证的逻辑"，AI会结合项目上下文和代码语义，定位到相关的文件和函数。在大型项目中，这种搜索方式比关键字搜索高效得多。

不过这里需要指出一个我的延伸分析：**语义搜索的准确性高度依赖于底层LLM对代码的理解能力。** 在2026年初的LLM能力下，对于架构复杂、抽象层次多的项目，语义搜索仍然可能漏掉一些间接关联的代码路径。所以我的建议是——把99的Search当作一个辅助入口，配合传统的代码导航工具（如LSP的Go to Definition、Find References）使用效果最佳。

### 7. "Skill Issues"筛选机制：对使用者的隐性门槛

ThePrimeagen在README中提到了一个有趣的"skill issues"概念。99不是为编程新手设计的，它有明确的目标用户画像：

- 你必须熟悉Neovim的基本操作（Normal/Insert/Visual模式切换）
- 你必须理解什么是buffer、window、autocmd
- 你必须能够在没有AI的情况下独立写出功能代码
- 你必须愿意审查AI的每一行建议

这个"skill issues"框架本质上是一种**自我筛选机制**。如果你连Neovim的基本配置都搞不定，99的安装过程就会把你劝退。这不是bug，这是feature——ThePrimeagen明确表示，99是"for those that still enjoy to code"（为那些仍然享受编码乐趣的人而建）。

从Reddit社区r/neovim的讨论来看，这个策略既获得了赞美也招致了批评。支持者认为这是对抗"AI懒惰编程"文化的正确姿态；批评者则认为这把99变成了一个小众精英俱乐部的玩具。我个人认为，ThePrimeagen的选择是合理的——一个工具不需要服务所有人，只需要服务好它选择服务的那群人。

### 8. 项目方向：探索而非产品

README中有一段很诚实的话：

> "This repo is meant to be my exploration grounds for using AI mixed with tradcoding. I believe that hand coding is still very important and that the best future is a mix of AI and human coding."

99目前标记为BETA，API随时可能变动。ThePrimeagen在视频中明确表示，他不打算把99做成一个"产品"，而是一个**探索性项目**——用来验证"AI辅助手工编码"这个理念是否可行。

从GitHub上的commit记录来看，ThePrimeagen会定期在Twitch直播中现场编写99的代码，展示新功能的开发过程。这种高度透明的开发方式也是他社区策略的一部分——你不仅能用这个工具，还能看到它是怎么被造出来的。

## 知识结构图

```mermaid
mindmap
  root((99 - Neovim AI Agent))
    设计哲学
      AI增强而非替代
      受约束的AI操作范围
      面向有经验的开发者
      手工编码的价值优先
    核心架构
      _99 Module 主入口
      State Management 状态管理
      Request Lifecycle 请求生命周期
      Prompt System 动态提示词
      Window as Context 窗口即上下文
    核心操作
      Visual Selection 精准代码修改
      Vibe 代码理解辅助
      Search 语义代码搜索
      Tutorial 项目学习引导
    配置系统
      SKILL.md 项目规则
      Language Auto-Detect 语言自动检测
      filetype 映射机制
      Agent Rules 行为约束
    技术栈
      Lua Neovim原生
      LLM API 后端模型
      Neovim Autocmd 事件驱动
      Buffer/Window 原生UI
```

## 实战启示

### 如果你是一个Vim/Neovim用户

99目前最直接的应用场景是给Neovim深度用户提供一种**不同于Copilot的AI辅助模式**。如果你已经在用Neovim作为主力编辑器，并且你对AI编程持谨慎态度（不想让AI替你写太多代码），99是一个值得尝试的方向。

**上手建议：**
1. 确保你的Neovim配置稳定（建议使用LazyVim或NvChad等发行版作为基础）
2. 按照GitHub README的安装步骤操作（注意README中提到"如果你是从YouTube视频来的，很多东西已经变了"，所以务必读最新文档）
3. 先在小型项目上试用，熟悉Visual Selection和Vibe操作
4. 为你的项目编写一个`SKILL.md`，这是获得最佳体验的关键

### 如果你不是Neovim用户

即使你不用Neovim，99的设计理念也值得借鉴：

**第一，"范围约束"原则可以应用到任何编辑器。** 无论你用VS Code还是JetBrains，当你使用AI编程工具时，都应该有意识地限定AI的作用范围。不要让AI一次性修改整个文件，而是逐段逐段地让它辅助。

**第二，项目级别的AI规则正在成为趋势。** 99的`SKILL.md`概念正在被其他工具借鉴。Cursor的`.cursorrules`、Claude Code的`CLAUDE.md`、Copilot的`.github/copilot-instructions.md`——本质上都是同一个思路。如果你还没用这类配置文件，现在就该开始了。

**第三，审查是AI编程的"质量关卡"。** 99的设计把审查（review）放在了核心位置——AI只建议，你决定。这个原则适用于所有AI编程场景。

### 关于"AI与手工编码"的思考

ThePrimeagen的99代表了一种正在崛起的思潮：**AI不应该让编程变成"提示词工程"，AI应该是程序员手中的另一个工具，就像调试器、profiler、linter一样。** 你不会因为有了调试器就不理解代码逻辑，同样，你不应该因为有了AI就放弃对代码的深度掌控。

2026年的编程世界里，"全AI编码"和"纯手工编码"之间存在着巨大的中间地带。99站在这条光谱的偏手工一端，但它并不拒绝AI——它只是坚持AI应该服务于程序员，而不是反过来。

## 延伸学习路径

1. **[ThePrimeagen/99 GitHub仓库](https://github.com/ThePrimeagen/99)** — 源码和完整文档，入门必读
2. **[ThePrimeagen在Lex Fridman播客的5小时访谈](https://lexfridman.com/theprimeagen-transcript/)** — 深入了解他的编程哲学、ADHD经历和对AI的看法
3. **[DeepWiki: ThePrimeagen/99](https://deepwiki.com/ThePrimeagen/99)** — 社区维护的代码级文档，包含架构图和模块解析
4. **[ByteByteGo: System Design系列](https://www.youtube.com/@ByteByteGo)** — 如果你对"编辑器架构设计"感兴趣，ByteByteGo的系统设计视频会给你更多灵感
5. **[boot.dev: ThePrimeagen的课程](https://boot.dev/prime)** — 他的TCP到HTTP（Go语言实现）和Git深度课程，适合想提升底层编程能力的开发者

## 一句话总结

**99不是在做"更好的AI编程工具"，而是在回答一个更根本的问题：在AI时代，程序员的价值到底是什么——是写更多代码，还是更深刻地理解代码？**

## 参考来源

1. [This is the only AI I want to use - ThePrimeagen](https://www.youtube.com/watch?v=ws9zR-UzwTE) — 分析的核心视频
2. [ThePrimeagen/99 - GitHub](https://github.com/ThePrimeagen/99) — 项目源码与README文档
3. [ThePrimeagen's 99 Hits 542 Stars/Day - ByteIota](https://byteiota.com/theprimeagens-99-hits-542-stars-day-ai-for-skilled-devs/) — 项目爆发式增长的数据分析
4. [Beyond the Chatbot: Why 99 is the AI Neovim Deserves - TypeVar](https://typevar.dev/articles/ThePrimeagen/99) — 技术架构深度解析
5. [ThePrimeagen/99 - DeepWiki](https://deepwiki.com/ThePrimeagen/99) — 社区维护的代码级知识库
6. [ThePrimeagen's opinionated Neovim AI agent - arifsolmaz](https://arifsolmaz.github.io/repo/2026/02/05/99/) — 项目哲学与设计理念分析

---

> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
