想在 Markdown 预览里改两个字,最后补了一套块编辑

想在 Markdown 预览里改两个字,最后补了一套块编辑

读 Markdown 的时候,看见一个错字,切回源码找那一段,改完再回预览。这个过程不复杂,但一篇文档里来回几次,就会想直接在眼前改。

这轮先在 alpha.16 补阅读,再在 alpha.17 加就地编辑和常用格式操作。文件仍然是一份普通 Markdown。

先让源码和预览能一起读

"在侧边打开预览"会复用已经存在的预览,源码继续保留键盘焦点。滚动按源码块关联,不用为了让预览跟过去,顺便挪动源码光标和选区。

预览里补了 GitHub 提示块、标题锚点、按内容宽度排的表格和阅读时间估算,文字可以选择,代码块也有复制按钮。复制代码时保留原来的空白,不能拿屏幕上裁切或排版后的样子去拼。

会话恢复还会记住阅读位置和预览模式。这一轮做完,源码与预览才比较像同一份文档的两种看法。

我没有再存一份富文本

要在预览里编辑,可以另建块树,最后导出 Markdown;也可以在源码窗格里隐藏标记、改变字号。

前一种会带来格式往返问题:原来用什么列表符号、留了几个空行、混了哪些 HTML,导出时可能全变。后一种则会碰到砚现有的等宽格子布局和点击坐标。

这次选了小一点的切口:双击一个块,把这一块临时换成它的 Markdown 源码编辑框。改完回到排版,整份文档仍以原来的文本缓冲区为准。

段落、标题、列表项、引用、代码块、表格行都能这样改。单击和拖动继续选字,链接和复制按钮照常响应,不能让一个编辑入口接管所有点击。

每次输入,都写回同一个文档

编辑框里的变化直接写回文档,所以源码列、未保存标记、撤销、自动保存和 Git 都能看到,不需要再加一个"同步回源码"按钮。

写入时带着文档版本和源行范围。如果别的地方已经修改了文档,这次写入就拒绝并退出编辑,避免照着旧范围替换新内容。CRLF 也跟着原文保留。

按 Esc、平台修饰键加 Enter,或者点到别处,就回到渲染状态。这里退出的是编辑框,已经写进文档的字不会因此消失。

再补一点写文档的手感

有了编辑框以后,粗体、斜体、行内代码、删除线和链接就能顺势接上。再次按格式键会取消已有标记;没有选中文字时,插入成对标记,把光标留在中间。

列表里按 Enter 接下一项,空项再按 Enter 结束列表;Tab 和 Shift+Tab 调整嵌套。输入法还在组字时,这些处理先放行,别抢中文输入的按键。

行首输入 / 可以插入标题、列表、待办、引用、代码块、表格或分隔线,也能用英文或拼音筛选。粘贴图片会写到文档旁的 assets 目录,再插入链接;剪贴板同时有文字时,先按文字处理。

目前改的是一个块

它还不是任意拖动块、点单元格编辑表格的完整文档编辑器。块间插入、跨块方向键、任务框点击切换等仍在后续清单里。

对现在的用途,这一步已经能少掉不少切换:读到哪段需要改,就在那里改几句。打开终端版或交给其他工具时,拿到的还是原来的 Markdown 文件。

下载试用

阅读改进在 alpha.16,块编辑与格式键在 alpha.17;下面使用 alpha.17。

下载地址核对于 2026-10-19。安装包适用于 macOS 13+、Apple Silicon,目前尚未 Apple 公证,首次打开说明见发布页。


仓库留档

相关推荐
孔令飞5 小时前
企业智能化升级:智能体平台设计和实现
云原生·go·ai编程
vipxieliang8 小时前
Go GC 性能优化实践:从 GOGC、GOMEMLIMIT 到分配优化
后端·go
小满zs1 天前
Go语言第十八章(架构设计)
后端·go
FungLeo2 天前
成为全栈·Go 后端篇·三轮代码审阅之后:把可读性和证据做成工程规则
golang·go·ast·静态检查·成为全栈·代码审阅
我不会起名字3222 天前
Redis 从 0 到 1(二十八):Redis 抖一下,重试把它打挂了——超时/重试/熔断的 Go 封装
redis·go·超时·熔断·重试
xyzzklk2 天前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
vipxieliang3 天前
语言对比卡:PHP vs Go vs Java 的优缺点、适用场景与「为什么选 PHP」
java·go·php
我不会起名字3224 天前
Redis 从 0 到 1(二十七):JSON 体积是 Protobuf 的 3.7 倍?3 种序列化的 Go 基准测试
redis·go·序列化·protobuf·messagepack
我不会起名字3224 天前
Redis 从 0 到 1(二十三):一个热 key 打到 10 万 QPS——hotkey 与本地缓存的 Go 实现
redis·缓存·go·qps·hotkey
Patrick_Wilson5 天前
Go 为什么需要 defer?从函数怎么收尾说起
后端·go·编程语言