前阵子在技术社区闲逛,看到一个叫“PNANA : Modern TUI Editor”的项目标题,我脑子里第一反应是:都2025年了,怎么还有人往终端编辑器这个红海里扎?而且名字还起得这么随意。但点进去之后,我发现事情没那么简单。PNANA的目标不是再做一个Neovim的换皮版,而是在终端里重新思考“编辑器”这件事本身。这篇文章我就从自己试用、配置、把PNANA当主力编辑器折腾了几天的体验出发,聊聊它到底解决了什么问题、有哪些值得关注的设计取舍,以及如果你也想上手,应该先从哪几个地方切入。不管你平时用VS Code还是Neovim,只要你对TUI工具链有兴趣,这篇应该能给你一些参考。
1. 为什么在图形编辑器满天飞的年代,还要折腾TUI编辑器
很多人不理解,终端里写代码不是自虐吗?VS Code有完整的调试面板、可视化Diff、插件市场,一个Alt+Tab切过去什么都有,为什么还要回到黑乎乎的终端里?
我先说一个反直觉的事实:越是复杂的图形编辑器,它的快捷键、面板、弹窗、鼠标手势就越多,你对“界面”本身的认知负担也就越重。而终端编辑器把所有操作收敛到键盘和文本上,你不需要在“文件树、代码区、终端面板、Git面板”之间来回切换注意力。这种专注度对于长时间写代码的人来说,是实打实的效率提升。
PNANA在这个方向上走得更激进。它不是简单复刻Vim的模态编辑、也不是模仿Emacs的组合键,而是利用了现代终端协议提供的能力,比如真彩色、内联图片、Unicode渲染、异步事件循环,把整个界面和交互做成了一套更接近“现代应用”的体验。你在PNANA里看到的不再是八九十年代的ASCII边框加灰色背景,而是一个色彩统一、布局平滑、响应无延迟的编辑环境。
从技术定位上看,PNANA属于TUI、Editor这两个关键词交叉的赛道。它的竞争对手不是VS Code,而是Neovim、Helix、Kakoune这类“键盘优先”的编辑器。但PNANA有个非常明显的特点:它不想让你为了用好它先去背一套几十年历史的模态键位,而是希望用更直观、更符合直觉的交互方式把新用户接住。
我自己的体会是,终端编辑器最大的门槛从来不是终端本身,而是“思维模型”的转换。VS Code里你什么都看得见,但PNANA告诉你:编辑器不需要把所有东西都放在界面上,而是要在你需要的时候,以最快的速度把它调出来。这个概念说起来容易,做起来非常难,需要对编辑器内部有足够深的理解。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 拆解PNANA的核心设计理念
2.1 “现代”到底体现在哪
我说PNANA“现代”,不是因为它用了Rust或者Go写的,而是因为它的几个底层决策真正考虑到了今天开发者的工作方式。第一个是异步IO。你在PNANA里打开一个大文件、跑一个LSP请求,界面不会卡死等结果。所有耗时操作都在后台任务里执行,主线程只管渲染和输入,这就让“不卡顿”成为一个基本体验,而不是需要额外优化的亮点。
第二个是语法树的深度集成。PNANA不只是用正则做高亮,而是把解析器集成到了编辑核心,类似Tree-sitter的思路。这意味着高亮不再是一套死板的颜色规则,而是能理解代码结构的:字符串里的引号该是什么颜色、函数名和函数调用怎么区分、多行注释里面嵌代码时怎么处理,这些都能精确做到。所以当你在PNANA里写代码时,颜色不是装饰,而是信息。
第三个是针对现代终端协议的适配。PNANA利用了终端里已经存在了几十年但极少被认真使用的转义序列——比如Kitty图形协议或iTerm的inline image协议,来实现真正的图形能力。你可以直接在编辑区域里查看图片、渲染HTML预览甚至跑简单的流程图展示,本质上是在终端里搭建一个轻量GUI。
这些设计放在一起,目标就很清楚了:PNANA想让你在一个终端进程里完成“写代码、看文档、做思维导图、预览图表、管理Git”这些原本
