hl-todo-swoop{,-all}
查找当前(或所有) buffer 的 TODO:
(defun hl-todo-swoop ()
"Use `helm-swoop' to find all TODO or similar keywords in current buffer."
(interactive)
(unless (require 'helm-swoop nil t)
(error "`helm-swoop' is not installed"))
(let ((regexp (replace-regexp-in-string "\\\\[<>()]" "" (hl-todo--regexp))))
(helm-swoop :query regexp)))
(defun hl-todo-swoop-all ()
"Use `helm-swoop' to find all TODO or similar keywords in all buffers."
(interactive)
(unless (require 'helm-swoop nil t)
(error "`helm-swoop' is not installed"))
(let ((regexp (replace-regexp-in-string "\\\\[<>()]" "" (hl-todo--regexp))))
(helm-multi-swoop-all regexp)))
不好意思才看见哈,我也重现这个 bug 了。
只要运行 consult-todo-dir
相关命令,如果列表项为空或者取消跳转就会出现。好像是因为涉及到 async 导致的 sentinel 错误。这个我还不懂,所以暂时没法解决。
本身我调用 rgrep
就是偷懒的做法,直接把命令加进了 compilation-finish-functions
这个 hook 里面,所以后续的debug我也完全一头雾水了。
最好的方法还是类似 magit-todos-list
那样,运行异步搜索命令然后 callback 再进行结果解析。
结果解析我没问题,看哪位大佬把前面那部分抽出来吧, magit-todos-list
我看着有点头疼。
我现在就将就着用。。反正错误只是提示一句 message 又不报错。
我重构了一下, 现在consult-todo-dir 可以正常使用了.
1 个赞
添加了缓存机制, grep耗时过长时会第一次默认缓存下来, 第二次调用就可以舒适使用了.
1 个赞
感谢更新,非常好用!比org-sidebar和consult-agenda都舒服。sidebar跳转不方便,consult-agenda太慢。非org文档能实现这样的关键词管理方式真的是一大贡献。
请教todo-narrow怎么设置才能生效?下面的配置似乎不行:
重启了之后可以了。
(use-package consult-todo
:config
(defconst consult-todo--narrow
'((?t . "TODO")
(?n . "NEXT")
(?f . "FIXME")
(?b . "BUG")
(?h . "HOLD")
(?d . "DONE")
)
"Default mapping of narrow and keywords.")
)
另外请问可否自定义使用ripgrep-all作为搜索引擎,它自带缓存,大文件搜索很快。 目前对于一个几万行的org文件搜索还是比较吃力。
目前使用的是自带的 rgrep, 底层是 grep 命令, 比较简单, 其实呢关键点在于你得自己去解析 grep的结果, 这个没有统一标准, 我可以抽象出接口, 但是解析方程还是需要你自己写. 这样的话, rg.el 其实都可以, 欢迎pr
1 个赞
请问下有没有办法让结果中的文件名短一些,在安卓手机上用的话,手机屏幕很小,文件名稍微长一点就看不到结果了。
emm… 还是建议您在电脑上使用吧, 我也没想到还有这种场景.