搜索与替换——v2.7 新增全文搜索,v2.5 加 Zim Wiki 专用替换
三种搜索的定位
Markor 里有三种搜索,各自服务不同场景:
| 搜索类型 | 在哪里触发 | 搜什么 | 适用场景 |
|---|---|---|---|
| 编辑器内搜索 | 正在编辑的文档 | 当前文件的内容 | 在当前长文里找某句话 |
| 文件浏览器搜索 | 文件浏览器里 | 当前目录的 文件名 | 找某个文件叫啥 |
| 全文内容搜索(v2.7+) | 文件浏览器里,需要显式打开 | 文件内容 | 在多个文件里同时搜一个关键词 |
编辑器内搜索
打开任意文件后,点顶部菜单(三个点)→ Search(或按手机音量键 + 搜索手势,取决于你设备的 Android 版本),弹出搜索框。
编辑器内搜索的功能
- 输入关键词 → 实时高亮 所有匹配
- 上下箭头 → 跳到上一个 / 下一个匹配
- 支持 大小写敏感 和 正则表达式 选项(在搜索框旁边的齿轮图标里)
- v2.10 改进:搜索对话框 保持打开,方便你连续跳多个匹配
替换(Search & Replace)
v2.5 起支持在编辑器内 搜索 + 批量替换:
- 在搜索框里输入要找的内容
- 点旁边的「替换」图标(↔ 或齿轮里选)
- 输入替换成什么
- 选项:
- 单次替换(Replace)
- 全部替换(Replace All)
- 跳过这次,下一个(Next)
v2.5 的更新日志里特别提到 Zim Wiki 用户会用到这个功能——在 Zim Wiki 里统一改双链标签名时,搜索替换是唯一高效的办法。
文件浏览器文件名搜索
在文件浏览器底部操作栏里点 🔍 搜索图标:
- 输入关键词 → Markor 在当前目录和子目录里 实时扫描文件名
- 支持部分匹配(输入前几个字母就能匹配)
- 不区分大小写
- 不依赖任何索引文件,每次都是实时光盘扫描
适合快速找文件。比手机系统文件管理器的搜索更快——因为它只关心你给 Markor 用的文件,不扫整个存储。
v2.7 新增:全文内容搜索
v2.7 起 Markor 能 在所有文件内容里搜关键词:
- 打开文件浏览器
- 点顶部或底部菜单里的 Content Search(不是文件名搜索)
- 输入关键词
- Markor 显示所有匹配的文件列表 + 每个文件里匹配的行数和位置
- 点某个匹配 → 直接打开该文件并跳到匹配位置
这是知识管理场景下最有用的搜索——比如你记得自己在某个笔记里写过「GTD 的五个阶段」,但忘了在哪个文件里,全文搜索一秒帮你找到。
搜索的性能
| 搜索类型 | 扫描对象 | 速度 | 文件多时 |
|---|---|---|---|
| 编辑器内搜索 | 当前打开文件的内存内容 | 极快 | 无影响 |
| 文件浏览器文件名搜索 | 磁盘实时扫描文件名列表 | 快 | 可能有几秒延迟 |
| 全文内容搜索 | 磁盘实时扫描所有文件的全文 | 慢 | 可能几十秒甚至超时 |
全文内容搜索 没有索引——每次都是重新扫描所有文件。所以:
- 几百个文件 → 秒级返回
- 几千个文件 → 可能要几秒到几十秒
- 建议:文件特别多的时候,用 文件名搜索 + grep(桌面端) 作为替代
和 grep 的搭配
Markor 的搜索是给手机用的。桌面端同步过来的文件,用 grep 才是王道:
# 在整个 Notebook 目录里搜关键词
grep -r "GTD 的五个阶段" ~/Markor-Notebook/
# 排除 .app/snippets 等隐藏目录
grep -r --exclude-dir=.app "关键词" ~/Markor-Notebook/
# 只搜 .md 文件
grep -r --include="*.md" "关键词" ~/Markor-Notebook/
# 统计每个文件里匹配的行数
grep -rc "关键词" ~/Markor-Notebook/
这比 Markor 的全文搜索快几十倍,而且 grep 的输出可以配合 sed、awk 做后处理。推荐的搭配策略:手机上用 Markor 的编辑器内搜索和文件名搜索,回到桌面后用 grep 做深度全文搜索和批处理。
正则表达式支持
编辑器内搜索支持 基础正则:
| 正则 | 匹配 |
|---|---|
Markor | 字面量 |
Mark.*r | Mark 后任意字符再 r |
^TODO | 行首是 TODO |
\.md$ | 行尾是 .md |
[A-Z].* | 大写字母开头的行 |
但全文内容搜索目前 不支持正则(只支持简单文本匹配)。