最近在折腾多 Agent 协同开发的框架,跑各种脚本的时候发现,平常用的 VS Code 开始变得越来越吃力和累赘。
Agent 经常跑在远程开发机或者隔离的容器里。如果每次都要配置 Remote SSH 去连这些随时可能被销毁重建的环境,不仅太重,而且很繁琐。更要命的是,本地跑大模型和跑多个 Agent 进程已经极其吃内存,Electron 架构的 IDE 再跟着抢占资源,开发体验直线下降。
于是我重新捡起了 Neovim,直接 ssh 上去用终端查看日志和修改代码。经过几周的调优,我发现 Neovim 不仅能胜任,而且其本身的设计哲学完美契合了当前的 AI 开发范式。
人类角色的转变:从打字员到审查员#
过去我们高度依赖 IDE,是因为很多功能(智能提示、重构、一键生成各种类方法)是为了加快“从零手敲代码”的速度。
但在现在的多 Agent 工作流中,大段的样板代码、业务逻辑其实是 Agent 瞬间生成的。人类的工作更多变成了阅读、审查、导航文件以及极其微小的手术刀式修改。
Vim 的核心设计是“为高效移动和精准编辑而生”,这恰恰切中了我现在的需求。我不需要在键盘和鼠标间来回切换,双手保留在主键盘区,就可以在 Agent 吐出的海量代码中快速跳转,决定哪些行保留,哪些行丢弃。
现代 Neovim 的 AI 工具链#
很多时候,用终端开发并不意味着要退回到石器时代。现阶段的 Neovim 生态已经非常成熟,可以说是补齐了 AI 辅助的最后一块拼图。在这里分享几个我在高频使用的配置组合,它们解决了我在调试 Agent 时遇到的几个具体痛点。
1. 终端里的 Cursor Composer:Avante.nvim#
在调试 Agent 的时候,经常会遇到它生成的代码逻辑跑偏。如果我手动去改,心智负担很重;如果开 VS Code 用 Cursor,又要重新建立连接。
Avante.nvim 是这个场景下的利器。它在侧边栏实现了一个极其强大的 AI 对话界面,支持接入最新的大模型。我可以选中一段 Agent 写出 bug 的代码,让它读取当前上下文直接生成修改方案。它的 Diff 界面非常直观,我可以精细到对某个代码块执行 Accept 或 Reject。
它的存在,让我可以把 Neovim 直接当成一个轻量级的终端版 Cursor 来用,遇到不懂的机制就直接在侧边栏询问。
2. 闪电般的内联补全:Supermaven#
在自己手动敲补丁代码时,普通的 LSP 已经不够用了。过去大家喜欢用常规的代码补全,但我现在切换到了 Supermaven。它的特点就是极低的延迟和超大的上下文感知,在处理复杂工程时,基本可以在我写出第一行逻辑前就把剩下的代码精准猜出来。
3. 多终端与进程管理:ToggleTerm 与 tmux#
开发多 Agent 系统,本质上是在调度和监控多个后台进程。你不可能在一个屏幕里只看代码。
我现在的习惯是用 tmux 做好物理分屏,左侧大窗专注看 Neovim 里的代码,右侧分屏跑着各种 Agent 互相通信的日志。而在 Neovim 内部,我配置了一键呼出的悬浮终端(比如 ToggleTerm.nvim 或 Snacks.nvim)。当我在编写调度逻辑时,随时可以调起悬浮终端跑一下测试,看完结果立马折叠,视线完全不需要离开代码。
4. 调试 Agent 输出流:jq.nvim#
Agent 之间的通信,或者它们去调用外部工具(Tool Calls)时, payload 通常是极其庞大和嵌套的 JSON。
在终端里看这种没被格式化的 JSON 体验非常糟糕。通过配置好 JSON 的 Treesitter 和 jq.nvim,我在 Neovim 里就能瞬间折叠或展开复杂的 JSON 结构,快速提取某个特定字段的值,找 bug 效率极大提升。
工具是为思想服务的#
折腾了一圈配置,我最大的感触是:工具链的选择,本质上是和你的开发心理模型挂钩的。
重量级的 GUI 编辑器是为了让你更好地“写”代码;而 Vim 加终端的组合,则是为了让你更好地**“掌控”**运行着多个 AI 机器人的系统。当你用着极低的资源占用,在一个纯净的终端环境中同时操纵多个 Agent 时,那种阻力极小的“人机协同心流”,确实是很多现代 IDE 给不了的。
如果你也在被臃肿的开发环境困扰,或者需要在不同的远程机器间频繁切换,不妨试试重新拿起 Neovim。