功能说明
本文档按使用场景整理 Markdown Editor 当前已经支持的功能。
命令面板
- 使用
Ctrl+Shift+P(macOS 为Cmd+Shift+P)、F1或工具栏“命令”按钮打开。 - 按中文命令名称或英文命令 ID 模糊搜索;支持空格分隔多个关键词和可选的
>前缀。 - 使用上下方向键循环选择,按 Enter 执行;也可以点击命令执行。
- 按 Esc 或点击面板外部关闭,恢复打开前的焦点;中文输入法确认不会执行命令。
- 显示当前上下文可用的注册命令,包括未分配快捷键的命令和已加载插件命令。
- 不显示仅适用于系统全局热键或按住 Ctrl 切换标签的命令。
- 显示当前平台和用户配置的快捷键;命令可用条件独立于快捷键绑定。
- 当前窗口会话内最近执行的命令优先显示,搜索结果仍以匹配程度排序。
- 命令面板模块在首次打开时加载;执行失败通过应用通知反馈。
- “打开最近的笔记库”作为
workspace.openRecent命令提供,可从命令面板搜索并执行。 - “切换列表”作为
editor.selectionToList命令提供:有选区时处理选中的完整逻辑行,无选区时处理光标当前行;目标行已全部带有-时统一移除,否则为未带标记的行补上-。命令在可编辑 Markdown 文档的命令面板中始终展示,默认快捷键为Alt+Shift+L,Edit 菜单同步展示该快捷键,也可在快捷键设置中修改。
1. 文档与标签管理
1.1 新建、打开与保存
- 新建 Markdown 文档,并自动填充欢迎内容。
- 通过文件选择器一次打开一个或多个 Markdown 文件。
- 再次打开已经位于标签页中的文件时,直接切换到对应标签,不创建重复标签。
- 保存当前文档。
- 新建文档首次保存时,可以选择文件名和位置。
- 使用“另存为”按钮将当前内容保存到新文件。
- 打开、保存、另存为和图片选择对话框绑定当前窗口显示,不会被主窗口遮挡。
1.2 写盘与文件格式
- 保存使用同目录临时文件和原子替换,写盘失败时不会先截断原文件。
- 仅打开有效 UTF-8 文件。
- 保存时保留原文件的 BOM 与 LF/CRLF 风格。
1.3 标签与未保存状态
- 使用多标签页同时编辑多个文档,并在标签间切换。
- 在文件树中单击文件会使用斜体的预览标签打开;同一窗口只保留一个预览标签,继续单击其他文件会在原位置替换它。
- 双击文件、从 Quick Open 确认、使用系统打开文件或重新明确打开预览文件时,会保留为普通标签。
- 双击预览标签、从右键菜单选择“保留打开”、拖动预览标签或开始编辑时,会把预览标签转为普通标签。
- 已经打开的普通或固定标签不会因文件树单击或搜索结果单击而降级为预览标签。
- 标签右键菜单可固定或取消固定标签;直接固定预览标签时会先将其保留为普通标签。
- 命令面板提供
editor.keepOpen、editor.pin、editor.unpin、批量关闭和强制全部关闭命令,并暴露 Preview、Pinned 与 Dirty 上下文条件供快捷键使用。 - 固定标签显示图钉,集中排列在标签栏最左侧,并在关闭其他、关闭左侧、关闭右侧和全部关闭操作中受到保护。
- 显式关闭固定标签时,第一次操作会提示保护状态;需在 5 秒提示期内再次按关闭快捷键或点击关闭按钮才会关闭。“强制全部关闭”仍可一次关闭包括固定标签在内的所有标签。
- 每个标签保留独立的原生编辑页,切换标签时不会重写正文。
- 标签切换后保留横向与纵向滚动位置。
- 标签切换后保留光标选区。
- 标签切换后保留当前应用会话内的撤销与重做记录。
- 支持拖动标签进行排序;固定与未固定标签各自在所属区域内排序,跨区域拖动不会改变固定状态。
- 标签排序结果随当前笔记库会话保存。
- 标签右键菜单支持保留、固定、取消固定,复制已保存文件的绝对路径或笔记库相对路径,以及关闭当前、其他、左侧、右侧、全部未固定标签或强制全部关闭。
- 按下
Ctrl+Tab时显示按最近查看顺序排列的标签列表。 - 松开
Ctrl后切换到列表中的选中项。 - 修改后的文档会在标签名称前显示圆点标记。
- 关闭存在未保存修改的标签时会先进行确认。
- 最后一个标签可以直接关闭。
- 无文档时,保存、另存为和图片插入操作不可用。
1.4 会话恢复
- 每个笔记库独立保存已打开标签、活动标签和未保存内容。
- 预览与固定状态随笔记库会话保存和恢复。
- 切换笔记库时同步切换标签。
- 关闭窗口前刷新当前笔记库的恢复稿。
- 未打开笔记库时,临时标签不会写入恢复记录。
- 启动或切换到没有已保存会话的笔记库时保持无文档状态,不自动创建新文档。
1.5 外部文件变更
- 外部程序修改未在本地编辑的文档时自动重载。
- 外部程序与本地同时修改文档时显示双版本冲突对比。
- 外部删除文件时保留编辑器内容为未保存恢复稿。
2. 笔记库与文件管理
2.1 笔记库
- 将普通本地文件夹作为笔记库打开,无需导入或转换。
- 通过“文件 → 新建窗口”或
Ctrl+Shift+N(macOS 为Cmd+Shift+N)打开空白窗口,可在多个窗口中同时打开不同笔记库。 - 所有平台均可按
Ctrl+Shift+Alt+S在当前已打开的应用窗口间循环切换。 - 新打开窗口、切换到已有窗口或从“最近笔记库”切换笔记库后,如果当前标签是编辑器且编辑区可见,会自动聚焦当前编辑器;应用内对话框打开时不会抢走对话框焦点。
- 每个窗口独立保有当前笔记库、目录索引和标签恢复上下文;最近笔记库、偏好和同步账号仍在应用内共享。
- 窗口标题显示当前笔记库名称,方便在系统任务切换器中区分多个窗口。
- 自动恢复上次使用的笔记库。
- 最近笔记库不限制条目数;侧边栏选择器、原生“文件 → 打开最近”菜单和快捷选择面板共享同一列表,并随打开、重命名和移除操作即时更新。
- 所有平台统一使用
Ctrl+R打开类似 Quick Open 的最近笔记库面板,可按仓库名称或完整路径模糊筛选,并使用方向键、Enter 或鼠标切换;macOS 的Cmd+R仍用于重新加载。 - 所选目录被移动或删除后,清除失效选择及其最近文件和收藏状态,并从最近列表移除。
2.2 目录树与侧边栏
- 侧边栏目录树展示文件夹和受支持的 Markdown 文件。
- 通过工具栏的“侧栏”按钮隐藏或恢复整个左侧面板。
- 拖动侧栏与编辑区、编辑区与预览区之间的分隔条调整大小;侧栏宽度和编辑/预览比例自动保存在本机,重启后恢复。
- 分隔条支持 Tab 聚焦后用方向键调整,Shift 加方向键加大步长;窄窗口上下排列时可调整编辑与预览高度比例。
- 目录树使用背景色标示当前选中项。
- 设置中的“文件树关联当前页面”默认开启,并持久保存。
- 开启时,切换标签页会展开对应文件的父目录并高亮节点;节点不在可视区域时,文件树会滚动到该节点。
- 关闭时,切换标签页不改变文件树的选择、展开状态和滚动位置;重新开启并保存后立即定位当前页面。
- 未保存页面、搜索页及笔记库外的文件没有对应节点,关联开启时会清除树中的高亮。
- 目录树支持鼠标右键菜单及
Shift+F10键盘菜单。 - 上下文菜单支持方向键、
Home/End、Enter/Space和Esc操作。 - 目录树使用单一 Tab 停靠点。
- 目录树支持方向键、
Home/End、Enter和空格键导航、展开与打开条目。
2.3 文件操作
- 支持新建文件和文件夹。
- 支持重命名、移动和复制文件或文件夹。
- 文件树右键菜单支持复制文件或文件夹的系统绝对路径与笔记库相对路径,并显示当前生效的可配置快捷键。
- 文件树条目和已保存文档的 Tab 上下文菜单支持“在文件管理器中显示”;默认快捷键为
Shift+Alt+R,也可从命令面板执行。 - 默认按
Shift+Alt+C复制路径;按Ctrl+K Ctrl+Shift+C(macOS 为Cmd+K Cmd+Shift+C)复制相对路径。 - 支持将文件或文件夹移入系统回收站。
- 新建、重命名和移动使用应用内输入对话框,避免依赖 Electron 不可靠的浏览器提示框。
- 有未保存文档时,阻止移动、重命名或删除对应文件和父文件夹。
- 移动或复制文档时,调整常见 Markdown 图片相对路径。
2.4 查找、最近文件与收藏
- 支持按文件名和正文搜索。
- 正文搜索结果显示命中片段。
- 使用
Ctrl+Shift+F(macOS 为Cmd+Shift+F)显示侧边栏并聚焦全文查找。 - 使用
Ctrl+Shift+R(macOS 为Cmd+Shift+R)展开全文替换并聚焦替换输入框。 - 使用
Ctrl+H(macOS 为Cmd+Option+F)在编辑区展开当前文件替换;可替换当前匹配或一次替换全部匹配,并沿用大小写和全字匹配选项。 - 当前文件替换展开时,Tab 从查找内容依次进入替换内容、查找选项和替换操作;Shift+Tab 按相反顺序移动。
- 焦点位于替换内容输入框时,按 Enter 替换当前匹配并保持输入焦点,可连续按 Enter 逐个替换。
- 焦点位于替换内容输入框时,Windows/Linux 按
Ctrl+Alt+Enter、macOS 按Cmd+Enter可替换当前文件中的全部匹配。 - 全文替换与查找共享大小写和全字匹配选项,仅修改 Markdown 正文,不更改文件名。
- 全部替换前显示影响文件数和替换数并要求确认;命中文件存在未保存修改时会阻止写盘。
- 替换写盘保留 UTF-8 BOM 和 LF/CRLF 换行格式,并同步刷新已打开文件、搜索标签页和大纲索引。
- 单击侧栏搜索结果时使用预览标签打开,后续结果会复用同一个预览位置。
- 侧栏搜索结果可通过搜索框旁的“在编辑器中打开”按钮生成只读搜索标签页。
- 搜索标签页按文件列出全部匹配行,默认显示每个匹配前后各一行上下文,并可随时隐藏或恢复上下文行。
- 搜索标签页顶部可直接修改查询,输入停止后动态刷新当前标签页的结果和标题。
- 搜索标签页支持编辑区内查找;双击文件标题、匹配行或上下文行可打开源文件并定位。
- 搜索标签页是当前会话内的静态快照,不会作为 Markdown 文件保存,也不会在重启后恢复。
- 支持最近文件和收藏。
2.5 失效链接检查
- 侧边栏“检查链接”可批量扫描当前仓库中已保存的全部 Markdown 文件;同一功能也作为
workspace.checkBrokenLinks命令显示在命令面板和快捷键设置中。 - 检查普通 Markdown 链接、图片、引用式链接以及原始 HTML 的
href/src,并忽略代码围栏和行内代码中的示例文本。 - 检查相对路径、仓库根相对路径、URI 编码路径、Markdown 标题锚点和原始 HTML 的
id/name锚点。 - 报告区分目标不存在、目标无法读取、标题不存在、路径越界和符号链接逃逸,并高亮失效目标;双击文件标题或问题行可打开源文件并定位到对应行。
- 报告使用只读临时标签页,同一窗口内再次检查会刷新原报告,不创建重复标签;报告不会进入会话恢复记录。
- 检查以磁盘中已保存的正文为准;存在未保存编辑时,应先保存再运行以获得最新结果。
- HTTP、HTTPS、邮件和其他带协议的链接不会发起网络请求,统一计入报告中的“已跳过外部链接”。
- 单次最多显示 10,000 个失效链接;达到上限时报告会明确标记结果已截断。
2.6 仓库详情
- View 菜单的“用 VS Code 打开当前仓库”会新建 VS Code 窗口打开当前仓库根目录,不沿用现有窗口;切换仓库后使用新的仓库路径。
- “用 VS Code 打开当前仓库”同时作为
workspace.openInVSCode命令显示在命令面板和快捷键设置中;默认快捷键为Alt+Shift+V,可修改或添加多个自定义快捷键。 - 此功能需要安装 VS Code 并注册
vscode://协议,无需配置code命令的 PATH;未打开仓库或系统报告启动失败时显示错误提示。 - 侧边栏“刷新”旁提供“仓库详情”入口。
- “仓库详情”后提供当前仓库的同步快捷按钮;同步期间按钮显示加载状态并禁止重复操作,完成后通过非阻塞通知反馈结果。
- “切换仓库后仍自动同步”和“安全的自动同步”两个独立仓库级开关位于侧边栏仓库操作区,无需打开同步中心即可配置。
- 仓库详情显示以下信息:
- 当前仓库的本地名称与路径;
- 同步身份与账号;
- 本地和远端 Markdown 数量;
- revision 与 cursor;
- 同步状态和时间。
- 可为本地仓库设置独立的显示名称;侧边栏、最近仓库和仓库详情统一使用该名称,磁盘上的根目录文件夹名与路径保持不变。
- 修改仓库名称时保留以下数据:
.mynote元数据;- 最近文件;
- 收藏;
- 后台同步设置;
- 已打开标签。
- 可在应用内二次确认后,将当前仓库从最近仓库列表中移除。
- 移除仓库时删除根目录下的
.mynote元数据文件夹,但不删除 Markdown 等笔记文件。 - 大纲索引保存在
.mynote/outline-index-v1.json,记录文件修改时间、大小、标题层级和源码行号。 - 启动或切换仓库后在后台按修改时间增量校验大纲索引;侧栏“重建索引”可强制重新解析全部受管理 Markdown。
- 本地目录不存在时通过非阻塞通知明确提示。
- 本地目录不存在时移除对应的最近仓库记录。
- 不继续读取失效仓库的同步状态。
- 失效仓库处理不会影响 Windows 仓库下拉框继续操作。
- 仓库 ID 不属于当前账号与服务地址时明确提示,不继续读取失效身份的同步状态。
2.7 仓库切换与同步缓存
- 成功克隆仓库后,同步中心自动关闭。
- 克隆完成后,以非阻塞通知显示克隆位置。
- 克隆完成后,将焦点移到仓库下拉框,避免 Windows 原生对话框阻止仓库选择器展开。
- 同步客户端缓存按路径、账号或服务、设备和仓库 ID 隔离。
- 仓库身份变更后,不会把旧仓库的 cursor 或状态显示到新身份上。
- 读取仓库详情期间身份发生变更时,明确报告错误。
2.8 基础设置
- 设置编辑器字号。
- 设置默认是否显示预览。
- 设置单击文件时是否启用预览标签;关闭后文件树与搜索结果单击均直接打开普通标签。
3. Markdown 编辑与预览
3.1 编辑与渲染
- 在编辑区输入 Markdown 时实时刷新预览。
- 支持 GitHub Flavored Markdown。
- 源码中的换行会显示为预览换行。
- 支持标题、列表、引用、代码块、表格、链接和图片等常用 Markdown 内容。
- 支持 Mermaid 流程图等图表。
- 使用
```mermaid围栏书写图表定义,预览区会实时渲染。 - 流程图节点使用原生 SVG 文字,并按完整行宽度排版。
- 窄预览区中的流程图支持横向滚动。
- 长中文与无空格文件路径不会被截断或缩小。
- Mermaid 语法错误会在图表位置显示提示。
- 编辑器源码中的链接支持使用
Ctrl+单击(macOS 为Command+单击)激活。 - 预览中的链接支持普通单击激活。
- 当前文档标题链接会跳到对应标题;相对 Markdown 链接会打开库内或当前文档旁的目标文件,并支持继续定位标题。
- HTTP、HTTPS 和邮件链接在系统外部目标中打开,并使用安全的链接关系属性;其他协议不会执行。
3.2 编辑器显示
- 编辑区左侧显示源码行号。
- 输入、切换文档和纵向滚动时实时同步行号。
- 长行保持为单行并可横向滚动,确保行号与源码行准确对齐。
- 编辑区正文使用文本插入光标,横向和纵向滚动条及其交角使用常规箭头光标。
- 使用浅蓝背景高亮光标当前行,并在移动光标、滚动和切换文档时保持准确定位。
3.3 页面内查找
- 编辑区和预览区均支持类似 VS Code 的页面内查找。
Ctrl/Command+F在最近使用的内容区打开浮动查找栏。- 聚焦查找框时保留当前阅读位置。
- 查找栏显示当前匹配序号和总匹配数,并支持循环定位。
- 预览查找框保持打开且存在结果时,继续编辑会刷新结果高亮,同时保留编辑区和预览区的当前滚动位置。
- 编辑区与预览区均以深色文字高亮全部搜索结果,并以独立颜色突出当前匹配;焦点离开查找框后继续保留高亮。
- 编辑器使用醒目标记持续显示当前结果,并准确跟随中英文混排内容。
- 导航结果或缩放页面时,自动横向和纵向滚动以露出完整命中词。
- 使用
Enter、Shift+Enter或F3前后导航。 - 使用
Alt+C切换是否区分大小写。 - 使用
Escape关闭查找栏。
3.4 编辑、预览与大纲面板
- 通过工具栏的“编辑”和“预览”按钮分别显示或隐藏编辑区与预览区。
- 仅显示编辑区或预览区时,可见界面自动占满两者的可用空间;窄窗口上下排列时同样填满可用高度。
- 恢复同时显示编辑区和预览区时,沿用此前保存的分栏比例。
- 通过“预览”旁的“大纲”按钮显示标题大纲。
- 拖动大纲左侧分隔条调整宽度并自动保存,重启后恢复;窄窗口上下排列时拖动上方分隔条调整高度,宽度与高度分别记录。
- 大纲分隔条支持 Tab 聚焦后用方向键调整,Shift 加方向键加大步长;隐藏大纲或切换到搜索标签页时同步隐藏分隔条。
- 激活大纲节点时,将对应源码定位到编辑区顶部。
- 大纲高亮跟随当前聚焦的内容窗格:编辑器聚焦时跟随光标行,预览聚焦时跟随预览滚动位置;高亮节点超出大纲视图时自动滚入可视范围。
- 编辑区隐藏时,激活大纲节点会直接定位可见的预览内容,并将焦点留在大纲。
- 双击大纲节点时,焦点也会留在大纲。
- 使用 View 菜单的“聚焦大纲”或
Ctrl/Command+Shift+O直接打开并聚焦面板。 Ctrl/Command+P的 Quick Open 中,@搜索全库持久大纲,@@搜索当前编辑内容的大纲;结果按标题级别缩进,一级标题不缩进,之后每增加一级添加两个空格;结果可直接打开文件并跳转到标题。索引更新状态显示在底部固定提示栏,不会挤压或推动结果列表;后台索引刷新时保留当前选择项。- 文件、标题和路径搜索支持中文原文、无声调全拼、拼音首字母以及空格分隔的混合关键词。
- 全拼仅支持精确、前缀和连续子串匹配,不再按分散在多个音节中的字母进行跳字匹配,避免短关键词误命中无关结果。
- 中文原文和拼音首字母仍支持按字符顺序跳字的模糊匹配;纯英文名称也保留这一行为。
- 上述匹配规则同时适用于普通文件快速打开、
@全库大纲和@@当前文件大纲。
3.5 大纲导航设置
- 设置中可控制单击或按
Enter/Space激活大纲节点后,是否把键盘焦点转移到编辑器。 - 关闭焦点转移后仍定位源码,但焦点留在大纲中。
- “导航大纲时即时跳转”默认开启。
- 即时跳转开启时,使用方向键或
Home/End移动大纲焦点会同步定位源码。 - 即时跳转关闭时,需要按
Enter/Space才跳转。 - 大纲跳转按照未自动换行的源码行精确定位。
- 标题前的长行不会产生额外的纵向偏移。
3.6 滚动同步与源码高亮
- 编辑区和预览区拥有独立滚动条。
- 两个区域按照 Markdown 源码块锚点双向同步,避免标题、列表、图片及换行造成长文档定位偏差。
- 移动编辑器光标时,预览区以浅蓝背景高亮对应的源码内容。
- 列表中的每个列表项独立匹配源码范围,只高亮光标所在的列表项。
3.7 设置窗口
- 设置窗口中的未保存修改会在点击“取消”或按
Escape关闭时丢弃。 - 编辑快捷键时,按键录制/手动输入模式同时作用于通用键位和全部平台覆盖;录制内容写入当前聚焦的键位输入框。
4. 图片管理
4.1 插入图片
- 通过工具栏或快捷键选择并插入本地图片。
- 通过工具栏读取剪贴板图片。
- 在编辑器中直接粘贴复制的图片。
- 插入图片前,如果当前文档尚未保存,会先提示选择文档保存位置。
4.2 图片存储与路径
- 图片复制到 Markdown 文件同级的
assets/目录。 - 图片使用避免重名的文件名。
- 文档中插入相对于 Markdown 文件的图片路径,便于连同
assets/目录一起迁移。 - 预览区按照当前 Markdown 文件的位置解析相对图片路径。
4.3 跨目录粘贴
- 在应用内跨目录复制或剪切含图片的 Markdown 文本时,粘贴会自动换算图片相对路径。
- 可通过标准撤销与重做快捷键恢复这次粘贴。
4.4 支持格式
- 支持插入 PNG、JPEG、GIF、WebP 和 BMP 格式的本地图片。
- 剪贴板图片保存为 PNG。
5. 界面与状态显示
5.1 布局
- 默认使用左右分栏布局,同时显示编辑区和预览区。
- 窗口宽度较小时自动切换为上下分栏布局。
- 编辑区、预览区和大纲直接展示内容,不占用空间显示重复的面板标题条。
- 工具栏仍可独立切换编辑区、预览区和大纲的显隐。
- 工具栏、标签栏和状态栏固定在窗口内,不随文档内容滚动。
5.2 标签与滚动
- 标签名称过长或标签数量较多时,支持省略显示和横向滚动。
- 标签支持标准键盘焦点以及左右方向键切换。
- 编辑区支持自动换行。
- 编辑区和预览区均保留可见的滚动条。
5.3 状态栏
- 状态栏显示当前文件名或完整路径。
- 状态栏显示文档字符数和行数。
- 状态栏显示光标所在的行与列;存在选区时同时显示选择的字符长度,反向选择按活动端定位光标。
- 状态栏显示 UTF-8 BOM 和 LF/CRLF 信息。
6. 同步协议
6.1 加载与身份模型
- 打开笔记库后可从工具栏按需启动同步。
- 普通启动和编辑路径不会加载同步实现。
- 使用稳定的笔记库、设备和文件 ID。
- 使用服务端单调 revision 和拉取 cursor。
- 同一安装重新登录同一账号与服务时复用原设备 ID。
- 重新登录时轮换登录令牌。
- 执行“远程退出当前设备”后,凭正确密码重新登录会重新激活该设备。
- 重新激活设备时保留仓库同步基线,不会从 cursor 0 重新遍历远端。
- 仅当远端已不存在该设备身份时才重新登记。
6.2 队列、重试与幂等
- 本地变更先写入持久化队列。
- 网络失败后显示错误并可安全重试。
- 本地扫描发现未跟踪路径时,先读取远端最终状态。
- 远端已有同路径同内容文件时,直接采用其
fileId和 revision。 - 采用远端文件身份时,不上传正文,也不创建新 revision 或冲突副本。
- 上传前后发生竞态时,同内容路径冲突按相同规则收敛。
- 重复操作使用客户端操作 ID 保证幂等。
- 提交后断网不会生成重复版本。
6.3 Markdown 合并与冲突处理
- 同路径 Markdown 双设备编辑使用共同祖先执行保守三方合并。
- 非重叠修改自动合并并清理临时版本。
- 重叠修改在原文件旁保留
.base、.local和.remote文件。 - 文件树显示未解决冲突警告。
- 打开的冲突文件会在标签栏显示警告标记,左上角仓库名也会在任一文件存在冲突时显示警告标记。
- 存在任何未解决的文件冲突时,手动与后台自动同步都会停止;点击同步操作会提示先处理冲突。
- 设置中可配置外部合并程序及
%local、%remote、%base和%merged参数。 - 可通过右键菜单直接启动外部合并程序。
- 冲突处理后可标记完成。
- 图片、删除、路径与重命名意图冲突使用普通冲突副本或同步回收目录。
6.4 删除与恢复
- 删除以墓碑同步。
- 远端删除的本地文件进入
.mynote/sync-trash/,以便恢复。
6.5 同步窗口与诊断日志
- 同步窗口分别显示待推送/待拉取数量;任一数量非零时高亮,并同时显示当前状态、远端游标和上次成功时间。
- 同步中心以“待同步(推送)内容”显示本地文件列表,区分新增、修改、重命名和删除。
- 展开待同步文件可查看相对上次同步内容的逐行 diff;待同步预览只扫描本地文件,不上传、下载或改写持久化同步队列。
- 已因失败保留在持久化队列中的内容按队列快照展示,并与本地扫描预览明确区分。
- 诊断日志按时间正序排列,最新记录位于底部。
- 诊断日志初始定位到最新记录。
- 用户停留在底部时,持续跟随新增记录。
- 用户向上查看旧记录后,保留当前位置。
- 点击远端仓库、登录设备、待同步(推送)内容、最近版本或诊断日志模块时,对应模块滚动到窗口顶部。
- 诊断日志始终展开显示。
6.6 运行时边界
- 产品同步入口只连接托管服务。
- 协议测试使用
test/helpers/memory-sync-remote.js中的内存远端替身。 - 内存远端替身不进入应用运行时或安装包。
7. 托管同步 Beta
7.1 服务与账号
- 可配置 HTTPS 托管服务地址。
- 支持注册或登录邮箱账号。
- 密码不会保存在客户端。
- 登录或注册失败时保留当前密码输入,方便修正账号信息后重试。
- 登录、注册成功或关闭窗口后清空密码。
- 已保存登录凭据但服务地址暂时不可达时,同步中心保留并重新显示服务地址与登录表单。
- 服务地址不可达时,允许修改地址后重新登录。
- 瞬时网络故障不会自动删除本机安全凭据。
- 同步中心直接显示托管服务地址和登录表单,不提供本地原型模式选择。
- 登录后,账号区域显示完整用户 ID。
- 提供一键复制用户 ID 到系统剪贴板的按钮。
7.2 登录凭据与设备会话
- 登录令牌使用系统安全凭据能力加密。
- 系统加密不可用时,不会退回明文保存。
- 支持让其他设备远程退出。
- 支持撤销当前设备会话并清除本机凭据。
7.3 自动同步
- 登录后可启用按秒计时的全局自动同步。
- 默认同步间隔为 60 秒。
- 关闭全局自动同步后禁用全部后台调度。
- 开启全局自动同步后,当前仓库始终进入定时任务,不受仓库级开关影响。
- “切换仓库后仍自动同步”默认关闭。
- “切换仓库后仍自动同步”不依赖全局开关,可在全局自动同步关闭时预先选择;全局关闭期间不执行调度。
- “安全的自动同步”是独立的仓库级选项,不依赖“切换仓库后仍自动同步”或全局开关,可单独预先选择。
- 当前仓库和切换后继续参与的后台仓库都遵循各自的安全模式设置。未选择时执行原有完整同步;选择后只有本地待推送或远端待拉取其中一侧有变化时才同步,双向变化或同步请求间发生竞态时保留队列与工作文件并跳过,不生成冲突副本。
- 多个目标按顺序同步,一个仓库失败不会阻断其余仓库。
- 手动“立即同步”不受仓库级开关影响。
7.4 远端仓库与克隆
- 无需先打开本地仓库即可进入同步中心。
- 登录后列出当前账号的全部远端仓库。
- 远端仓库列表显示 revision、当前未删除 Markdown 文件数和创建时间。
- 图片附件不计入 Markdown 文件数。
- 未命名仓库显示完整 ID。
- 手动命名后,仓库显示为
名称(完整 ID)。 - 可选择远端仓库克隆到本地,并直接切换为当前工作区。
- 选择空文件夹时直接克隆。
- 选择非空文件夹时,在其中新建以仓库名称或完整 ID 命名的安全子文件夹。
- 新设备选择空文件夹后,自动接入账号中唯一已有数据的远端笔记库,无需手工复制隐藏元数据。
- 同一台机器可保留同一远端库的多个本地目录副本。
- 每个本地目录副本维护独立同步游标。
7.5 配额、设备与版本历史
- 显示账号配额、登录设备、最近版本和当前同步状态。
- 最近版本标明新增、修改、重命名、删除或恢复动作。
- 最近版本显示修改时间和设备名。
- revision 高于当前本地同步游标的最近版本以“待同步到本地”高亮,拉取完成并刷新列表后自动取消高亮。
- 最近版本列表上方常驻说明蓝色高亮条目代表待拉取(同步到本地)的版本。
- 展开版本后可查看以下信息:
- 设备、文件和操作标识;
- 哈希;
- 原路径;
- 恢复来源;
- 逐行正文 diff。
- 正文 diff 使用 13px 等宽字体,行高为字号的 1.5 倍。
- 差异框随内容展开,不再单独限制为最高 300px。
- “精简差异”默认启用,只显示每处变化及其前后 3 行。
- 取消“精简差异”后显示完整 diff。
- “自动换行”默认关闭。
- 自动换行关闭时,长行使用横向滚动。
- 自动换行启用后,长行在差异框内换行。
- 切换差异显示选项时,不重复请求服务端。
- 展开版本的标题与恢复按钮在详情滚动期间吸附在列表顶部。
- 二进制附件显示修改前后的大小。
- 未删除的历史正文可恢复为新版本。
- 每条最近版本都提供“整体恢复”,可将本地同步文件和已打开的编辑内容强制还原为该全局 revision 的仓库快照,并丢弃原有本地待推送队列。
- 整体恢复在全局自动同步关闭时只产生本地待推送变更,不修改远端;全局自动同步开启时会在恢复后立即遵循该仓库的普通或安全自动同步策略。
7.6 本地同步状态
- 同步基线、待上传队列、cursor 和诊断日志保存在仓库
.mynote内。 - 状态文件名不依赖仓库绝对路径。
7.7 图片附件
- 同步 PNG、JPEG、GIF、WebP 和 BMP 图片附件。
- 跨设备保留原始二进制字节。
- 单文件上限为 20 MB。
7.8 服务端能力与诊断
- 服务端使用关系元数据、加密对象存储、版本历史、墓碑和审计事件。
- 同步失败、渲染进程异常和未处理错误可发送有界诊断摘要。
- 诊断摘要不包含登录令牌。
- 可将服务端当前完整 Markdown 与图片库导出为普通目录。
- 导出目录保留
.mynote/library.json。
7.9 Beta 限制
- 托管同步当前标记为 Beta。
- 尚未提供非图片通用附件。
- 尚未提供密码重置。
- 尚未提供团队共享。
- 尚未提供端到端加密。
8. 快捷键
| 快捷键 | 功能 |
|---|---|
Ctrl+N |
新建文档 |
Ctrl+O |
打开文件 |
Ctrl+P |
快速打开文件;输入 @ 搜索全库大纲,输入 @@ 搜索当前文件大纲 |
Ctrl+H |
替换当前文件(macOS 为 Cmd+Option+F) |
Ctrl+G |
输入行号并跳转到当前文档的对应行 |
Ctrl+R |
打开最近的笔记库;macOS 同样使用 Ctrl 而不是 Command |
Ctrl+Shift+Alt+S |
在当前已打开的应用窗口间循环切换;Windows 与 macOS 相同 |
Ctrl+F |
在当前编辑区或预览区内搜索 |
Ctrl+Shift+F |
在文件中查找 |
Ctrl+Shift+R |
在文件中替换 |
Ctrl+= / Ctrl+Shift+=(Ctrl++) |
放大整个应用页面 |
Ctrl+- |
缩小整个应用页面 |
Ctrl+0 |
重置页面缩放为 100% |
Enter / Shift+Enter |
查找栏打开时跳到下一个/上一个匹配 |
F3 / Shift+F3 |
查找栏打开时跳到下一个/上一个匹配 |
Alt+C |
查找栏打开时切换区分大小写 |
Alt+S |
打开同步中心 |
Escape |
关闭当前查找栏 |
Ctrl+S |
保存当前文档 |
Alt+Shift+S |
系统级热键:主窗口已显示且激活时最小化;已显示但未激活时置于前台并激活;隐藏或最小化时恢复显示并激活 |
Ctrl+W |
关闭当前标签 |
Ctrl+Tab |
打开最近使用标签列表并向前选择,松开 Ctrl 后切换 |
Ctrl+Shift+Tab |
打开最近使用标签列表并向后选择,松开 Ctrl 后切换 |
macOS:Command+Shift+[ |
循环切换到上一个标签 |
macOS:Command+Shift+] |
循环切换到下一个标签 |
Windows/Linux:Ctrl+PageUp |
循环切换到上一个标签 |
Windows/Linux:Ctrl+PageDown |
循环切换到下一个标签 |
Ctrl+Shift+I |
插入本地图片 |
除表中明确标为所有平台统一使用 Ctrl 的快捷键外,macOS 可以使用 Command 代替 Ctrl。显示或隐藏主窗口的快捷键是系统级热键,在应用位于后台时同样生效。
- 缩放快捷键在编辑器聚焦时同样生效,可在设置 → 快捷键中修改,也可通过命令面板执行。
- 同时支持
Ctrl+小键盘 +放大和Ctrl+小键盘 -缩小(macOS 使用Command),不需要按Shift。 - 小键盘加减键可独立录制和修改;快捷键 JSON 中分别写为
numadd和numsub,例如ctrl+numadd。 - View 菜单保留缩放操作;键盘缩放由应用快捷键系统统一处理,避免原生菜单抢占用户配置的按键。
