结合 BuildTable、TableBuilder、BlockBasedTableBuilder、BlockBuilder、BlockHandle 和 Footer 的源码,从写侧视角梳理 RocksDB 如何把 flush/compaction 输入流编码成 block-based SST,以及 data/index/filter/properties/metaindex/footer 各自的职责与字节边界。
结合 ScheduleFlushes、SwitchMemtable、BackgroundFlush、FlushJob、MemTableList::TryInstallMemtableFlushResults 与 GetDBRecoveryEditForObsoletingMemTables 的源码,梳理 RocksDB 如何把 mutable memtable 切成 immutable、刷成 L0 SST,并推进 MANIFEST 与 WAL 保留边界。
Day 014 对前 14 天主线做回顾、巩固与高频扩展,把 motion、text objects、search、Ex、quickfix、LSP、diagnostics、health 压成一套“先判断问题,再选工具”的统一编辑模型,并给出后续项目驱动复训路径。
Day 013 聚焦 LazyVim 的日常编辑闭环,把 files / grep / buffers、LSP 跳转与 rename、diagnostics、quickfix、jumplist、format 串成一条能反复执行的默认工作流。
Day 012 聚焦 LazyVim 默认的代码导航与 LSP 基础操作,围绕 definition、references、hover、rename、code action、symbols 建立“语义导航”心智,并把 Day 11 的文件 / 搜索工作流接到真实代码跳转上。
结合 LookupKey、InternalKeyComparator、MemTable::Get、SaveValue、range_del_table_ 与 WriteBatch::InsertInto 的源码,梳理 RocksDB 如何在 memtable 中实现删除、多版本可见性、范围删除覆盖以及 seq_per_batch 语义。
Day 011 聚焦 LazyVim 默认的文件、搜索和 buffer 工作流,围绕 Snacks picker 与 buffer 切换建立 root dir / cwd / files / recent / buffers 的判断,让“找文件、搜内容、切上下文”真正形成默认动作。
Day 010 聚焦 LazyVim 的定位、leader 思维和 starter 配置结构,先建立“LazyVim 是一套默认工作流而不是一堆快捷键”的判断,并学会从哪些入口开始看、从哪些文件开始改。
Day 009 聚焦 Neovim 的定位,以及终端、剪贴板、配置入口和 :checkhealth 这四个最值得先接进日常工作流的入口,让前 8 天学过的 Vim 语法自然过渡到现代宿主环境。
Day 008 聚焦 Vim 高频进阶整合,补齐插入模式高频入口、点命令、撤销、寄存器、宏、:global 和多文件批处理,把前 7 天的基础动作串成更稳定的日常编辑闭环。