Trae IDE solo编程模式深度实测:从补全代码到完整交付功能
最近被Trae IDE的solo编程模式震惊到了。我先解释一下这是什么Trae IDE是一款AI原生的集成开发环境而solo编程模式是它内置的一种全自动编程玩法——你只需要把需求说清楚它就不再是逐行提示你写代码而是像一个人一样自己去读项目、拆任务、改文件、跑命令、看报错、再修复直到完成整个功能闭环。我第一次用的时候本来只打算试试水结果它真的把一个小型的、带数据库的个人工具从头到尾搭了出来那种感觉确实像在和一个远程工程师结对开发而且对方还不用睡觉。坦白说以前我对AI自动写代码这类功能一直是有保留的。那些常见的代码补全工具再厉害也还是在给我一条条建议真正的架构决策、文件组织、运行调试还是得自己来做。但solo编程模式不一样它把写代码变成了交付功能。这篇文章我不聊广告词只用我自己的实操记录聊清楚它到底能做什么、边界在哪里、以及哪些坑我是踩过之后才想明白的。1. solo编程模式带来了什么变化1.1 从补全代码到完整交付的跳跃过去我们用AI写代码最典型的姿势是在对话框里问帮我写一个xxx函数然后它给出一段代码我复制进项目再自己对接变量、处理异常、检查边界。这叫AI补全。而solo编程模式给我的第一感觉是它把目标从代码片段迁移到了功能闭环。我举个具体的例子。假设你现在想给博客加一个阅读统计功能。传统AI辅助模式会告诉你需要一张表存访问记录需要写一个接口需要在前端加一段统计脚本。但接下来的所有工作都是你的建表要自己执行SQL接口要自己挂到路由里前端脚本要自己找地方插进去报错了要自己排查。整个过程其实和没有AI差不多只是省了打字时间。solo编程模式则把这个长链路压缩成一次交互。你只需要说给博客加一个阅读统计功能用SQLite存数据前端显示文章阅读次数数据要防刷它会自己判断应该创建哪些文件、修改哪些文件、装什么依赖、跑什么命令然后真正把项目跑起来验证。我第一次用的时候看到它自己打开终端执行命令又自己读报错信息接着自己去修改代码一种这玩意是不是真的想当我的同事的感觉油然而生。平时这些动作都是我自己在做现在它全包了。1.2 solo编程模式与普通AI助手的最大不同区别可以从交互模型上看出来。普通AI助手是你提问它回答的单轮或短链式对话solo编程模式则是你派任务它执行它验证它修正的长周期循环。这意味着你不再需要把所有细节都想到它可以自己去填补那些隐藏在实现过程中、你不知道该如何表达的中间步骤。从使用心态上也有很大不同。在传统模式下我心里一直有一个审查开关每生成一段代码都要怀疑它能不能跑而在solo模式下这个开关可以稍微松一松因为它会自己运行程序我只需要在关键节点上检查最终结果是否符合预期。不过这不意味着它真的全知全能。它在执行过程中仍然会暴露出不少问题但真正让我意外的不是它不犯错而是它会像真人一样对着报错信息调整策略。这个尝试-失败-再尝试的闭环才是它和普通工具最根本的代差。2. 为什么它真的扛得住一个完整需求2.1 它会先读懂项目而不是只看当前文件solo编程模式能处理完整需求前提是它确实在建立对整个项目的理解。我在使用中发现它启动一个任务后并不会急着写文件而是先扫描项目的目录结构、依赖配置、现有代码风格甚至去读readme和主要的配置文件。这一步特别像新人入职第一天先翻代码库。这个设计很关键。因为修复一个功能往往牵一发而动全身。如果只盯着当前文件改很容易改坏其他关联模块。在solo模式下它读到你要加的功能之后会主动去搜索哪些地方可能受影响比如路由入口、数据模型、页面模板然后统一规划改动范围。实际验证时我向它提了一个听起来不太复杂的需求——给所有文章页自动生成动态的上一篇和下一篇导航。我自己想的是在模板里加两行代码但实际需要改数据库查询、模板渲染、无文章时的边界处理、甚至还要处理文章被删除后跳转空页的逻辑。这些ticking细节我都还没说它自己就发现并处理了。这让我有点意外因为它对上下文的理解比我想象的深。这种能力的另一个表现是它不会用把整个文件重写这种粗暴方式处理改动。它会在原有代码里精确地插入或修改片段保留我的代码风格和命名习惯。对于我这种维护着多年代码库的人来说这一点非常加分。2.2 把大需求拆成可执行的小任务并且自己检查结果一个大功能通常包含几十个小步骤solo模式拿到需求后会给自己列计划。我在Trae IDE里能看到它的思考过程它会在任务开始前输出一个大纲先改数据层再改业务层再改展示层最后写自动化验证。这个拆解过程其实就是资深工程师的处理思路。更聪明的是它会设定完成定义。它不满足于代码写完而是要跑起来看效果。所以在实现过程中它会主动调用编译、测试、开发服务器等命令。如果某个步骤的预期效果和实际输出不一致它会记录问题然后回到代码里去修正。这种自省机制比我见过的大多数AI编程工具都更接近一个真正开发者。很多工具写完代码就完事了至于能不能运行那是你的问题。而solo模式下它会自己把运行结果当作判断依据。对于带数据库的项目它甚至会创建测试数据来验证边界行为。我自己遇到过一件事我让它实现一个基于标签的推荐文章列表它完成后主动跑了一个命令然后根据自己的报错又改了三个文件最后告诉我推荐结果里出现了自己所以排除掉了自己——它居然自己发现并修掉了这个逻辑漏洞。这个细节让我确实有点震惊。2.3 一个可复现的自动化循环理解-规划-编码-运行-修复把前面两个点合并在一起看solo模式的核心其实是一个清晰的自动化循环理解扫描项目结构、读取相关文件、识别需求影响面规划输出任务清单明确修改顺序和验证方式编码高质量地修改代码同时保持项目风格运行自动执行编译、测试或启动命令用真实结果检验修复根据报错和预期差异返回编码阶段直到稳定。这个循环在一遍遍迭代时对硬件和模型上下文能力有很高要求。Trae IDE把上下文窗口拉得比较大所以它能记住任务开始时的约定不会做着做着就忘了原始需求。我从实际体验看一个中等规模项目它能连续执行十几步而不跑偏这个稳定性已经足够支撑日常开发了。不过我还是要强调这套流程并不是无限可靠。它执行得越久累积的上下文越多后期偶尔也会出现遗忘或误判这时候需要你介入打断、重述目标。这恰恰说明它更适合被当成一个可协作的同事而不是一台无脑的自动生成机器。3. 实操记录用solo编程模式三天搭完一个带数据库的博客阅读统计3.1 明确需求与创建solo任务纸上谈兵没意思我挑一个真实场景来复盘。这个场景是我在维护的个人技术博客底层是Python的FastAPI框架前端是原生HTML加一点原生JavaScript数据库用的是SQLite。我想加一个每篇文章阅读统计功能期望效果是在文章底部展示阅读次数同时后台接口能返回访问量最高的文章列表。我先在Trae IDE里新建了一个任务任务描述是这样写的给这个博客添加阅读统计使用本地的SQLite数据库存储每篇文章的访问记录文章详情页时访问量加1不采用第三方统计服务页面底部显示阅读次数并发访问时不能有数据写入错误不需要管理后台界面。这段描述大概一百多个字放在以前用普通AI助手我至少还要追加十次对话才能覆盖所有细节。而solo模式的第一次规划就直接给出了六步计划创建数据表、编写数据访问层、给路由加计数逻辑、在前端模板展示数据、写一个只返回topN的接口、最后用脚本模拟并发访问。任务创建完之后它没有马上动手而是先读取了我的项目配置文件main.py、templates目录里的模板、甚至检查了SQLite是否可用。这一步让我很放心因为它不是在凭空输出一套无法落地的代码。3.2 它自己完成的数据表、接口、前端组件接下来的过程我在旁边看着它开始创建文件和建议新的依赖。它在项目里新增了一个stats.py模块里面包含连接管理、表初始化、计数调用等几个函数。其中表结构我后来打开看过字段设计相当合理主键id、文章路径、阅读次数、最后访问时间并且给文章路径加了唯一索引避免同一篇文章重复插多行。然后又自动打开main.py把统计模块的高亮代码映射进去并注册了一个新的路由。最后它改动了文章详情模板在文章底部加了一个阅读 358 次的展示区块。整个过程没有动我原有的任何业务逻辑只是很克制地加了几处引用。我印象最深的是它自己决定把增加计数的操作放在响应发送之后而不是在请求进来时立刻写数据库。这样设计的好处是避免用户端等待数据库写入同时也降低了因渲染失败导致计数错误的概率。这个决定我原来都未必会想到它却基于对框架异步特性的理解自己做了。整个过程中我几乎没有干预。它会在每个阶段完成后停下来报告进度我可以选择继续,也可以要求解释刚才做了什么或改一种实现方式。这种节奏让我感觉不是在用工具而是在和一个有经验的开发者在配合。3.3 我做的审查代码、纠正依赖问题当然真实开发没有免费午餐。solo模式把方案落地后我还是做了一遍code review。整体代码质量是合格的但有一个小问题它直接安装了最新的某个第三方库版本而这个库要求Python版本高于我当前环境。结果它自己运行测试的时候报错了报错信息是这个库需要3.10而环境是3.9。如果是传统AI辅助模式这时候我已经开始复制报错去搜索引擎了。但在solo模式下它自己读到了报错并主动在计划里增加了一行降低依赖版本满足当前运行环境。然后它调整了requirements.txt中的版本号重新安装并再次运行测试直到全部通过。之后我又提出一个小改动阅读次数超过一万时用 1.2万 这种格式展示。它同样自己完成了。我只需要在对话里补一句追加需求它就会继续在当前上下文里工作而不是重新从零开始。所以我的实操结论是使用solo模式时你不需要逐行监督它但你需要像一个技术负责人那样做两件事——第一把完成标准说清楚第二在它交付后做一次重要的审查。剩下的工作它做得比我预期的更可靠。4. 我在实战里踩过的坑与排查心得4.1 任务描述写得太含糊导致反复返工solo模式和真人开发者有一个共同点需求不清时会多次返工。我第一次用的时候只写了一句给博客加个留言功能结果它做出来的东西是一个完整的、带用户注册的留言板包含用户表、登录页面、会话管理前后端加一起改了二十几个文件。功能是能跑但明显超出我的实际需要而且引入的复杂度也高了不少。后来我明白这个模式不会主动对需求做需求收敛。它会倾向于把模糊的想法理解成完整的功能。所以描述任务时最好把不要什么也写进去。比如你在需求后面加一句不需要用户登录不需要审核功能不需要删除功能它就会收敛很多。如果任务已经执行到一半你才发现需求理解偏差也有救但代价要看阶段。如果还在规划阶段直接让它停止并重新描述如果已经改了十几个文件让它在当前基础上调整会更快因为项目上下文它已经掌握了重新来反而容易制造新的冲突。4.2 长任务跑到一半卡住怎么办长任务跑得再多也难免有卡住的时候。最常见的情况是它在某个文件修改上反复尝试超过五轮每轮都在改同一个逻辑但问题依然存在。我观察到的原因是它会执着于当前思路像程序员钻牛角尖一样。这时候我会在对话里输入停下来重新审视依赖关系换个思路。这句话对它的效果通常很好。它会停止当前连续尝试回到最开始的项目扫描阶段重新梳理这个功能所依赖的上下游。之后往往能找出真正的问题比如函数调用位置不对、某个状态没有被更新、异步操作没有等待结果。还有一种卡住是外部环境问题比如网络超时、包管理器源不可用、权限不够。它虽然能读取报错但解决这种环境问题的路径不是改代码。我的做法是手动处理好环境问题然后在对话中告诉它环境已修复继续。它不会从头开始而是接着之前的进度继续。4.3 让solo模式进入对话修复模式的三种方式solo模式不是只能自动驾驶。在它陷入反复失败或方向错误时可以主动切换到对话修复模式让思路重新对齐。我整理了三种比较有效的干预方式直接提问你为什么要这样做这会让它解释当前的实现逻辑暴露它可能的错误假设给出关键约束不要安装新依赖、不要修改配置文件这类硬性要求能帮它做减法手动回滚把刚才对这三个文件的改动撤销重新做可以快速清掉污染。这三种方式我都在实际项目中用过。印象最深的一次是它为了完成某个功能打算同时修改十一个文件我担心风险让它在尽量少的文件里实现最后它改成只用修改两个文件。这说明它并不是没有最小化改动的能力而是默认倾向于实现普遍性方案需要你把尽量少改作为显式约束提出来。5. solo编程模式的边界与适用场景5.1 适合哪些项目和开发者那solo模式到底适合谁我的答案是适合中小型开发任务、原型验证和技术探索型项目。如果你要做一个个人工具、一个内部管理系统、一个课程作业、一个MVP产品solo模式能大大压缩从想法到跑通的时间。它尤其擅长处理那些你知道要做什么但过程很琐碎的工作——建表、写接口、补页面、调参数。这类工作技能要求不高但极其耗时交给solo模式恰好在它的舒适区里。对开发者而言初级开发者可以把它看作贴身导师通过观察它的规划和改代码过程学到规范写法有经验的开发者可以把它当成高效的杠杆把精力花在架构决策和关键性能问题上而不是重复劳动。5.2 不适合哪些场景以及必须保留的最终审查权有适合就有边界。solo模式不适合大型遗留系统的重构、涉及复杂分布式事务的改动、或者对安全合规有明确要求的核心业务。它虽然能理解项目上下文但毕竟依赖的是模型对代码的整体判断面对极大规模或大量历史债务的代码库时它仍然有可能做出局部最优但整体不合理的改动。更关键的一点是你必须保留最终审查权。无论它做得多像真人本质上它仍然是概率模型可能会写出看起来正确但实际上有逻辑漏洞的代码。它在执行过程中能自动修复明显错误但无法替你做产品决策也无法承担上线后的责任。所以每次交付后我会要求它生成一份改动摘要然后自己对关键文件做一遍检查。我自己的做法是把所有重要任务都放进git分支solo模式每完成一个阶段我就提交一次。这样万一某个自动修改有问题可以随时回退。这次阅读统计功能花了三天每天一两个小时其实大部分时间都花在我的审查和调整需求上真正让它自动干活的时间并不多。5.3 给新手的几个建议如果你第一次尝试solo编程模式我建议从一个小项目开始不要一上来就丢给它一个大型商项目。先用类似做一个命令行待办工具写一个简单的静态网站生成器这类范围清晰的任务来建立感觉。过程中尽量把它的计划读一遍它列计划的能力就是一种很好的编程思维训练。其次每次使用前明确两个问题这个功能完成后我如何验证它做对了 和 它的改动会不会影响现有功能。前者让对方有验收标准后者让你自己心里有数。很多时候它做出来的功能我很满意正是因为在描述阶段我就把验证方式说清楚了。另外我想提醒一点不要因为这种模式效率高就放弃理解代码。它替你写代码不等于你可以对整个项目一无所知。一旦需要调试线上问题或者要对复杂需求做架构设计长期依赖全自动模式的开发者会明显感觉到吃力。最理想的使用方式是把它当成一个可以快速执行你思路的实习工程师而你始终是那个掌握方向的人。最后分享一个我在实际使用中发现的小技巧solo模式执行完一个任务后不用急着开新任务。你可以接着让它做代码清理或补充注释也可以让它解释它改了哪些文件、以及为什么这么改。这种复盘过程对理解它的思维方式和提升自己的架构能力都很有帮助。我用了几次之后明显感到自己写需求描述的能力也变强了这大概是这个模式带给我最意外的收获。

相关新闻

DSG梯度域动态增强:医学影像与工业检测的通用优化方案

DSG梯度域动态增强:医学影像与工业检测的通用优化方案

做图像算法的这几年,我先后接过两类让人头疼的项目:一类是医疗影像的清晰度优化,医生拿着低剂量采集的片子,病灶轮廓明明就在那儿,可对比度不够、噪声又重,放大几遍也看不实在;另一类是工业产线…

2026/10/9 12:40:07 阅读更多 →
磁盘告警应对:swap扩容、HF缓存迁移与ffmpeg清理实战

磁盘告警应对:swap扩容、HF缓存迁移与ffmpeg清理实战

1. 场景与整体思路:一次磁盘告警引发的标准操作先说清楚这篇博文是干什么的。标题里四个动作——swap扩容与删除、Hugging Face换目录、ffmpeg视频处理、清理空间——看起来互不相干,但它们背后是同一个痛点:开发机磁盘不够用了,而…

2026/10/9 12:40:07 阅读更多 →
Oracle汉字转拼音PL/SQL包:从GBK到UTF8的完整解决方案

Oracle汉字转拼音PL/SQL包:从GBK到UTF8的完整解决方案

简介:在Oracle数据库中,将汉字批量转成拼音是数据检索和索引优化时的常见需求。这套PL/SQL包面向数据库开发与数据分析人员,支持UTF8编码,可直接用于分词检索、拼音码排序、前端模糊搜索等场景。压缩包体积仅一百五十六KB&#xf…

2026/10/9 12:40:07 阅读更多 →

最新新闻

农业知识图谱实战:从百度百科爬取到Neo4j可视化全流程

农业知识图谱实战:从百度百科爬取到Neo4j可视化全流程

简介:这份资源面向计算机、数学、电子信息等专业的学生与知识图谱初学者,提供一套基于Neo4j的农业领域知识图谱构建完整源码,可用于课程设计、期末大作业或毕设项目参考。项目覆盖从百度百科爬取农业数据、数据分类,到结构化数据生…

2026/10/9 13:22:09 阅读更多 →
MySQL导入美国城市数据SQL全指南:避坑与查询实践

MySQL导入美国城市数据SQL全指南:避坑与查询实践

简介:这是一份面向开发者与数据分析人员的美国城市地区MySQL数据库资源包,适用于地图服务、房产平台、物流配送、市场研究等需要处理美国地理位置信息的应用场景。数据库涵盖美国50个州及华盛顿特区共43351条记录,包含城市名称、邮政编码、经…

2026/10/9 13:22:09 阅读更多 →
Codex 隐藏玩法:让 Sol 当包工头、Luna Max 当工人,订阅额度直接翻倍|TaoToken 统一 Key 通道实测

Codex 隐藏玩法:让 Sol 当包工头、Luna Max 当工人,订阅额度直接翻倍|TaoToken 统一 Key 通道实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 13:22:09 阅读更多 →
【开源项目】SpringBlade微服务开发平台:用TaoToken统一Key打通多服务调用链

【开源项目】SpringBlade微服务开发平台:用TaoToken统一Key打通多服务调用链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 13:22:09 阅读更多 →
ROS2服务通信详解:接口设计、Python实现与工程实践

ROS2服务通信详解:接口设计、Python实现与工程实践

1. 服务通信的定位:为什么“请求-应答”是机器人里绕不开的模型先别急着敲代码,咱们把ROS2的三种通信方式放在一张桌子上对比着看,你就能明白服务(Service)这东西到底补上了什么缺口。话题(Topic&#xff0…

2026/10/9 13:22:09 阅读更多 →
HarmonyOS 7 Core Vision Kit:文搜图短别名索引与回查契约【鸿蒙心迹】

HarmonyOS 7 Core Vision Kit:文搜图短别名索引与回查契约【鸿蒙心迹】

李游 把“文本搜照片”接进相册类应用时,第一反应往往是模型是否足够准确、结果能否排到用户想看的那一张。但真正接入产品数据之后,还有一道更靠前的门槛:供视觉服务建立索引的究竟是哪条文件路径?图库里的资源可能来自相机、文件…

2026/10/9 13:21:08 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →