PyCharm中TODO未高亮是因为格式不合规或设置未启用:必须为#TODO:(无空格、大写)、正则\bTODO\b已启用、Python文件类型被包含在TODO范围中。

PyCharm里TODO标记为什么没高亮?
默认情况下PyCharm会识别TODO、FIXME、XXX这类注释关键词,但前提是它们必须出现在单行注释中,且紧挨着//(Java/Kotlin)或#(Python)之后,中间不能有空格。比如#TODO: 重构登录逻辑能被识别,而# TODO: …(冒号前有空格)或# todo: …(小写)则不会触发高亮——PyCharm默认区分大小写,且对空格敏感。
常见错误现象:TODO写了但编辑器没变色、不进TODO工具窗口、搜索不到。这时先检查注释格式是否合规,再确认是否启用了TODO分析。
- 打开
Settings > Editor > TODO,确认TODO条目已启用且正则表达式为\bTODO\b(默认值) - 确保当前文件类型在“Scope”中被包含(如Python文件需在“File Types”里勾选
Python) - 如果用的是PyCharm Community版,
TODO工具窗口功能完整;Professional版额外支持按自定义标签过滤和关联任务
怎么让TODO自动跳转到对应代码行?
PyCharm把TODO当作结构化注释处理,只要格式正确,就能在TODO工具窗口(Alt+6 或 View > Tool Windows > TODO)里双击条目直接跳转。但要注意:它只索引当前项目(Project scope),不扫描外部库或未加入项目的文件夹。
使用场景:多人协作时,用# TODO(@zhangsan): 验证邮箱格式加责任人,虽不能自动指派,但能快速定位上下文;上线前批量检查所有TODO是否已闭环。
-
TODO必须写在源码文件内,.md或.txt里的不会被识别 - 如果某行有多个
TODO,PyCharm只提取第一个匹配项 - 修改注释后需手动触发索引更新(
File > Reload project from disk),或等待几秒自动刷新
如何自定义TODO关键词或调整优先级?
PyCharm允许添加FIXME、HACK等非默认关键词,还能设置不同颜色和排序权重。比如把FIXME标为红色、置顶显示,比普通TODO更醒目。
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
参数差异体现在正则表达式和背景色配置上:FIXME建议用\bFIXME\b(精确匹配单词),避免误匹配fixme.py这类文件名;而OPTIMIZE可设为浅蓝色,降低视觉干扰。
- 路径:
Settings > Editor > TODO > +添加新条目,填入名称、正则、颜色 - 正则中
\b表示单词边界,防止子串匹配;不用.*通配,否则性能下降 - 同一文件里多个TODO标签共存时,按列表顺序决定优先级(顶部的优先级更高)
TODO标记会被Git提交吗?有什么风险?
会。TODO是普通注释,只要没被.gitignore排除,就会随代码一起提交。这不是PyCharm的问题,而是开发流程问题——容易把临时标记当正式代码发布。
性能影响几乎为零,但兼容性隐患明显:有人用# TODO写调试提示,上线后忘记删,结果暴露内部逻辑;还有人写# TODO: 删除这行,反而成了永久注释。
- CI阶段可用
grep -r "TODO\|FIXME" --include="*.py" .做静态检查,失败则阻断合并 - 团队约定:PR描述里必须列出所有新增
TODO,并注明预计解决时间 - PyCharm本身不提供“TODO过期提醒”,靠人工或插件(如
Todo Check)补位
真正麻烦的不是标记本身,而是没人定期清理——一个项目积累几百条TODO后,工具窗口就失去意义,反而变成噪音源。

















