You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Emacs中展示项目所有文件的全部TODO事项?

实现Emacs一键查询项目所有TODO事项

方案1:Projectile + Ripgrep(推荐)

Projectile是Emacs主流项目管理工具,搭配Ripgrep(快速文本搜索工具)可以一键完成项目内TODO搜索:

  1. 先确保系统安装了ripgrep,Emacs中安装projectile包。
  2. 添加自定义函数,自动在当前项目根目录搜索TODO类关键词:
(defun my-search-project-todos ()
  (interactive)
  ;; 可自行添加更多关键词,比如 NOTE、HACK
  (projectile-ripgrep "TODO\\|FIXME\\|BUG" (projectile-project-root)))
  1. 绑定到你常用的按键,比如F5:
(global-set-key (kbd "<f5>") 'my-search-project-todos)

按下按键后,搜索结果会直接在*ripgrep*缓冲区展示,按Enter可跳转到对应文件的TODO位置。

方案2:Counsel + Ripgrep(适合Ivy用户)

如果你用Ivy/Counsel套件,可用counsel-rg实现带交互选择的搜索:

(defun my-counsel-project-todos ()
  (interactive)
  (counsel-rg "TODO\\|FIXME" (projectile-project-root)))

绑定按键后,按下会弹出Ivy候选框,选中匹配项即可跳转,支持模糊搜索过滤结果。

方案3:增强hl-todo的跨文件搜索

针对你已经在用的hl-todo,可以包装它的hl-todo-occur函数,自动使用项目根路径:

(defun my-hl-todo-project-occur ()
  (interactive)
  (hl-todo-occur (projectile-project-root)))

绑定按键后,直接调用就能跳过路径选择步骤,自动搜索当前项目下的所有TODO。

补充说明

  • Projectile默认会识别Git/Mercurial等版本控制项目的根目录,非版本控制项目可在根目录创建空的.projectile文件标记。
  • 可根据需求修改搜索正则,比如添加\\|NOTE\\|HACK来包含更多类型的注释标记。

内容的提问来源于stack exchange,提问作者Refael Sheinker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 04:28:15