结合 MemTable::Add、MemTable::Get、SkipListRep、InlineSkipList 与 ConcurrentArena 的源码,梳理 RocksDB 如何把带 sequence 的更新编码进内存表,并用跳表与分块分配器组织读写与内存生命周期。
Day 007 聚焦命令行模式与常用 Ex 操作,先掌握 :w、:q、:e、范围、命令拼接、命令行窗口,把“在文本里改”推进到“对编辑器发出明确指令”。
结合 DBImpl::WriteToWAL、log::Writer::AddRecord、log::Reader::ReadRecord 与 RecoverLogFiles 源码,梳理 RocksDB 的 WAL 如何承载 WriteBatch、如何做物理分片写入,以及恢复时如何重新还原为 memtable 更新。
Day 006 聚焦 buffer、window、split 的日常工作流,先掌握同一会话里多个文件怎么切、同屏怎么并排看、什么时候该切 buffer,什么时候该开 split。
结合 DBImpl::WriteImpl、WriteThread、WriteBatchInternal 等源码,梳理 RocksDB 写路径里写线程分组、sequence number 分配、WAL 写入与 memtable 插入的主流程。
Day 005 聚焦搜索、替换和可视模式,先掌握最常用的查找、逐个确认替换和三种 Visual 选择方式,让“找到目标并改掉”形成稳定闭环。
Day 004 把 operator + motion 继续推进到文本对象,先掌握最常用的词、引号、括号和方括号对象,让编辑范围更贴近真实结构,而不是只靠光标硬找边界。
结合 DBImpl::Open、Recover、VersionSet::Recover、WAL 回放与 InstallSuperVersion 的源码,梳理 RocksDB 在启动阶段如何从磁盘元数据和 WAL 重建可服务的运行时对象图。
Day 003 把前一天学的 motion 真正接到编辑动作上,建立“先选操作,再给范围”的 Vim 编辑节奏,先掌握 d / c / y 和最常用的 motion 组合。
Day 002 不追求背更多导航命令,而是把移动从“按字符硬挪”升级成“按词、按行、按文件位置直接到位”,为后续 operator + motion 打底。