Sublime Text 无法直接支持 TODO.txt 规范,因其仅为文本编辑器,不内置任务解析、状态追踪或同步能力;需依赖外部工具(如 todo.sh)管理任务,Sublime 仅作查看与轻量编辑。

Sublime Text 本身不支持 TODO.txt 规范的自动解析或同步,所谓“使用 TODO.txt 方法”其实是手动配合外部工具或插件模拟行为,不是开箱即用的功能。
为什么 Sublime 不能直接“用” TODO.txt
TODO.txt 是一套纯文本 + 约定格式(如 todo.sh 工具链)的待办管理协议,依赖命令行解析、优先级标记((A))、项目(+project)、上下文(@home)等语义。Sublime 是编辑器,不内置任务调度、状态追踪或跨文件索引能力——它只负责打开和高亮 todo.txt 文件。
常见错误现象:
• 直接在 Sublime 里写 (A) 调试接口 @work +api due:2024-06-15,但没任何排序/过滤/完成标记反馈
• 安装了 TodoReview 插件,误以为它能识别 TODO.txt 语法,其实它只扫 // TODO 或 # FIXME 这类注释
- Sublime 的
Find in Files可以搜^.*@.*$找上下文,但无法动态归类或更新状态 - 真正实现 TODO.txt 流程,必须靠外部工具(如
todo.sh、gtodo)生成/修改文件,Sublime 仅作为查看和轻量编辑器 - 性能影响:大文件(>500 行)下正则高亮会卡顿,建议关闭
todo.txt的语法高亮(用 Plain Text 模式)
用 Package Control 安装 todo.txt 插件的实操要点
目前最接近需求的是 TodoTxt 插件(作者:maliayas),但它只提供基础语法高亮和简单命令,不替代 todo.sh。
- 安装后需手动设置语法:右下角点击「Plain Text」→「Open all with current extension as...」→ 选
TodoTxt - 支持的标记有限:能识别
(A)、+project、@context、due:2024-06-15,但不解析tz:、ref:等扩展字段 - 关键限制:没有「标记完成」快捷键;想打
x前缀得自己敲,插件不会帮你移动行到done.txt - 兼容性注意:Sublime Text 4 需用插件最新版(≥ v2.0),旧版在 ST4 下会报
AttributeError: 'NoneType' object has no attribute 'view'
如何让 Sublime 和 todo.sh 真正协作
这才是实际可用的工作流:Sublime 编辑,todo.sh 管理状态。两者通过文件系统耦合,不是插件集成。
- 把
todo.txt放在固定路径(如~/todo/todo.txt),用 Sublime 的Project → Add Folder to Project加入该目录 - 终端执行
todo.sh add "(B) 写文档 @docs +sublime",然后在 Sublime 里Ctrl+R刷新文件即可看到新增 - 避免同时在 Sublime 和终端改同一行——
todo.sh会重排行号,Sublime 无自动 reload,可能覆盖修改 - 推荐配置 Sublime 的
file_watcher_mode为native(默认),否则 Linux/macOS 下可能检测不到todo.sh的文件变更
别踩这些坑:高亮、搜索、同步的边界在哪
很多人卡在“为什么搜不到 @work”,其实是正则或路径没配对。
- Sublime 的
Find in Files默认不启用正则,搜@work要先点.*图标,否则只匹配字面量 -
TodoTxt插件的高亮规则不覆盖行首空格,如果习惯缩进写法(如(A) xxx),高亮会失效 - 没有跨设备同步能力:Sublime 不连 Dropbox/Nextcloud,
todo.txt文件得靠你手动同步,插件不处理冲突 - 移动端配合时,iOS 的
Things或 Android 的Organize不认 TODO.txt 格式,必须用todo.txt-cli导出为 CSV 才能中转
复杂点在于:TODO.txt 的威力来自命令行组合(todo.sh ls @home due:today),而 Sublime 只是窗口。想省事,就别指望它变全能;想可靠,就老实用终端驱动,Sublime 安静当个好编辑器。

















